add Tuple_calloc
authorRalph Ronnquist <ralph.ronnquist@gmail.com>
Wed, 13 Jul 2022 06:07:47 +0000 (16:07 +1000)
committerRalph Ronnquist <ralph.ronnquist@gmail.com>
Wed, 13 Jul 2022 06:07:47 +0000 (16:07 +1000)
vector/Tuple.c
vector/Tuple.h

index 06eba85778e4e654623aa1c0ca869af9c2e6b84a..e5341bd1a807a1ae298630b4d5e964d28e39139b 100644 (file)
@@ -3,6 +3,13 @@
 #include <string.h>
 #include <Tuple.h>
 
+Tuple *Tuple_calloc(int arity) {
+    Tuple *t = (Tuple *) malloc( sizeof( Tuple ) + arity * sizeof( void* ) );
+    t->types = 0;
+    memset( t->elements, 0, arity * sizeof( void* ) );
+    return t;
+}
+
 // Allocate
 Tuple *Tuple_create(int arity,...) {
     va_list ap;
@@ -23,6 +30,7 @@ Tuple *Tuple_clone(int arity,Tuple *t) {
     return ct;
 }
 
+#if 0
 unsigned long Tuple_mask(int arity,Tuple *t) {
     unsigned long mask = 0;
     while ( arity-- > 0 ) {
@@ -33,3 +41,4 @@ unsigned long Tuple_mask(int arity,Tuple *t) {
     }
     return mask;
 }
+#endif
index b14d196565a7ae5243d10e92d41475962848752a..fb6bbd6582df49326f9ceecfcca7f9c88a06d343 100644 (file)
@@ -13,21 +13,25 @@ typedef struct {
     void *elements[];
 } Tuple;
 
-extern ItemKeyFun *Tuple_elementType(Tuple *t,unsigned long index);
-
 /**
- * Create a tuples with given values.
+ * \brief Create an untyped tuple with given values.
  *
- * \related TupleSchema
+ * \related Tuple
  */
 extern Tuple *Tuple_create(int arity,...);
 
 /**
- * \brief Create a tuples as a clone of a given tuple
+ * \brief Create an untyped tuple with 0 values.
  *
- * \related TupleSchema
+ * \related Tuple
  */
-extern Tuple *Tuple_clone(int arity,Tuple *t);
+extern Tuple *Tuple_calloc(int arity);
 
+/**
+ * \brief Create a tuple as a clone of a given tuple.
+ *
+ * \related Tuple
+ */
+extern Tuple *Tuple_clone(int arity,Tuple *t);
 
 #endif