ofproto: Inline trivial functions.
[sliver-openvswitch.git] / lib / svec.c
index 4f8968d..d083ebb 100644 (file)
@@ -1,31 +1,30 @@
 /*
- * Copyright (c) 2008, 2009 Nicira Networks.
+ * Copyright (c) 2008, 2009, 2010, 2011, 2012 Nicira, Inc.
  *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at:
  *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
  */
 
 #include <config.h>
 #include "svec.h"
-#include <assert.h>
 #include <ctype.h>
 #include <stdlib.h>
 #include <string.h>
 #include "dynamic-string.h"
 #include "util.h"
-
-#define THIS_MODULE VLM_svec
 #include "vlog.h"
 
+VLOG_DEFINE_THIS_MODULE(svec);
+
 void
 svec_init(struct svec *svec)
 {
@@ -49,7 +48,7 @@ svec_destroy(struct svec *svec)
 }
 
 void
-svec_clear(struct svec *svec) 
+svec_clear(struct svec *svec)
 {
     size_t i;
 
@@ -59,6 +58,12 @@ svec_clear(struct svec *svec)
     svec->n = 0;
 }
 
+bool
+svec_is_empty(const struct svec *svec)
+{
+    return svec->n == 0;
+}
+
 void
 svec_add(struct svec *svec, const char *name)
 {
@@ -135,7 +140,7 @@ svec_sort_unique(struct svec *svec)
 void
 svec_unique(struct svec *svec)
 {
-    assert(svec_is_sorted(svec));
+    ovs_assert(svec_is_sorted(svec));
     if (svec->n > 1) {
         /* This algorithm is lazy and sub-optimal, but it's "obviously correct"
          * and asymptotically optimal . */
@@ -173,8 +178,8 @@ svec_diff(const struct svec *a, const struct svec *b,
 {
     size_t i, j;
 
-    assert(svec_is_sorted(a));
-    assert(svec_is_sorted(b));
+    ovs_assert(svec_is_sorted(a));
+    ovs_assert(svec_is_sorted(b));
     if (a_only) {
         svec_init(a_only);
     }
@@ -227,7 +232,7 @@ svec_find(const struct svec *svec, const char *name)
 {
     char **p;
 
-    assert(svec_is_sorted(svec));
+    ovs_assert(svec_is_sorted(svec));
     p = bsearch(&name, svec->names, svec->n, sizeof *svec->names,
                 compare_strings);
     return p ? p - svec->names : SIZE_MAX;
@@ -255,7 +260,7 @@ svec_is_unique(const struct svec *svec)
 const char *
 svec_get_duplicate(const struct svec *svec)
 {
-    assert(svec_is_sorted(svec));
+    ovs_assert(svec_is_sorted(svec));
     if (svec->n > 1) {
         size_t i;
         for (i = 1; i < svec->n; i++) {
@@ -369,13 +374,13 @@ svec_join(const struct svec *svec,
 const char *
 svec_back(const struct svec *svec)
 {
-    assert(svec->n);
+    ovs_assert(svec->n);
     return svec->names[svec->n - 1];
 }
 
 void
 svec_pop_back(struct svec *svec)
 {
-    assert(svec->n);
+    ovs_assert(svec->n);
     free(svec->names[--svec->n]);
 }