Author: rhs
Date: Fri May 24 18:07:49 2013
New Revision: 1486141
URL: http://svn.apache.org/r1486141
Log:
made pn_data_t an object
Modified:
qpid/proton/trunk/proton-c/src/codec/codec.c
Modified: qpid/proton/trunk/proton-c/src/codec/codec.c
URL:
http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/codec/codec.c?rev=1486141&r1=1486140&r2=1486141&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/codec/codec.c (original)
+++ qpid/proton/trunk/proton-c/src/codec/codec.c Fri May 24 18:07:49 2013
@@ -19,6 +19,7 @@
*
*/
+#include <proton/object.h>
#include <proton/codec.h>
#include <proton/error.h>
#include <proton/buffer.h>
@@ -1000,9 +1001,19 @@ typedef struct {
size_t current;
} pn_point_t;
+static void pn_data_finalize(void *object)
+{
+ pn_data_t *data = (pn_data_t *) object;
+ free(data->nodes);
+ pn_buffer_free(data->buf);
+ pn_error_free(data->error);
+ free(data->iatoms);
+}
+
pn_data_t *pn_data(size_t capacity)
{
- pn_data_t *data = (pn_data_t *) malloc(sizeof(pn_data_t));
+ static pn_class_t clazz = {pn_data_finalize};
+ pn_data_t *data = (pn_data_t *) pn_new(sizeof(pn_data_t), &clazz);
data->capacity = capacity;
data->size = 0;
data->nodes = capacity ? (pn_node_t *) malloc(capacity * sizeof(pn_node_t))
: NULL;
@@ -1020,13 +1031,7 @@ pn_data_t *pn_data(size_t capacity)
void pn_data_free(pn_data_t *data)
{
- if (data) {
- free(data->nodes);
- pn_buffer_free(data->buf);
- pn_error_free(data->error);
- free(data->iatoms);
- free(data);
- }
+ pn_free(data);
}
int pn_data_errno(pn_data_t *data)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]