]> sigrok.org Git - libsigrok.git/commitdiff
datastore_new(): Use int as return value.
authorUwe Hermann <redacted>
Sun, 9 May 2010 11:32:58 +0000 (13:32 +0200)
committerUwe Hermann <redacted>
Sun, 9 May 2010 20:06:27 +0000 (22:06 +0200)
datastore.c
sigrok.h

index bb59fd587cbe5cf3d5cdd5a8e7025d3378ff3e43..75cd243b6ed964c46f92ea5d984c555b8d287145 100644 (file)
 
 static gpointer new_chunk(struct datastore **ds);
 
-/* TODO: Return int as error status, and the struct as param. */
-struct datastore *datastore_new(int unitsize)
+int datastore_new(int unitsize, struct datastore **ds)
 {
-       struct datastore *ds;
+       if (!ds)
+               return SIGROK_ERR;
 
        if (unitsize <= 0)
-               // return SIGROK_ERR;
-               return NULL; /* FIXME */
+               return SIGROK_ERR; /* TODO: Different error? */
 
-       if (!(ds = g_malloc(sizeof(struct datastore))))
-               // return SIGROK_ERR_MALLOC;
-               return NULL; /* FIXME */
+       if (!(*ds = g_malloc(sizeof(struct datastore))))
+               return SIGROK_ERR_MALLOC;
 
-       ds->ds_unitsize = unitsize;
-       ds->num_units = 0;
-       ds->chunklist = NULL;
+       (*ds)->ds_unitsize = unitsize;
+       (*ds)->num_units = 0;
+       (*ds)->chunklist = NULL;
 
-       return ds;
+       return SIGROK_OK;
 }
 
 int datastore_destroy(struct datastore *ds)
index bd1e89095d8e6613d7be25a489aaa9a566212dea..78f1567ca775e7a8621a80e305934000fc6e283f 100644 (file)
--- a/sigrok.h
+++ b/sigrok.h
@@ -182,7 +182,7 @@ struct datastore {
        GSList *chunklist;
 };
 
-struct datastore *datastore_new(int unitsize);
+int datastore_new(int unitsize, struct datastore **ds);
 int datastore_destroy(struct datastore *ds);
 void datastore_put(struct datastore *ds, void *data, unsigned int length,
                   int in_unitsize, int *probelist);