New function ofpbuf_clone_data().
authorBen Pfaff <blp@nicira.com>
Wed, 24 Dec 2008 23:09:57 +0000 (15:09 -0800)
committerBen Pfaff <blp@nicira.com>
Fri, 26 Dec 2008 21:27:23 +0000 (13:27 -0800)
lib/ofpbuf.c
lib/ofpbuf.h

index 77631e1daca71b970ddcafc55373672359242fd7..ab469dbf9a24a46a040082031839c75521f4d9ab 100644 (file)
@@ -92,11 +92,16 @@ ofpbuf_new(size_t size)
 }
 
 struct ofpbuf *
-ofpbuf_clone(const struct ofpbuf *buffer) 
+ofpbuf_clone(const struct ofpbuf *buffer)
 {
-    /* FIXME: reference counting. */
-    struct ofpbuf *b = ofpbuf_new(buffer->size);
-    ofpbuf_put(b, buffer->data, buffer->size);
+    return ofpbuf_clone_data(buffer->data, buffer->size);
+}
+
+struct ofpbuf *
+ofpbuf_clone_data(const void *data, size_t size)
+{
+    struct ofpbuf *b = ofpbuf_new(size);
+    ofpbuf_put(b, data, size);
     return b;
 }
 
index 0e94e35bceb1cb92f9212c59e898994da952d73c..f3a94c2c891530d90654931b77a7c6579d4d5884 100644 (file)
@@ -62,6 +62,7 @@ void ofpbuf_reinit(struct ofpbuf *, size_t);
 
 struct ofpbuf *ofpbuf_new(size_t);
 struct ofpbuf *ofpbuf_clone(const struct ofpbuf *);
+struct ofpbuf *ofpbuf_clone_data(const void *, size_t);
 void ofpbuf_delete(struct ofpbuf *);
 
 void *ofpbuf_at(const struct ofpbuf *, size_t offset, size_t size);