dbutils/class.c

changeset 4
1908c8b1599f
parent 2
4c12c95f4846
child 7
c98ff52cd806
--- a/dbutils/class.c	Sun Dec 08 15:46:03 2024 +0100
+++ b/dbutils/class.c	Mon Dec 09 23:47:52 2024 +0100
@@ -48,6 +48,8 @@
     cls->name = cx_strdup(cx_str(name));
     cls->fields = cxHashMapCreateSimple(CX_STORE_POINTERS);
     cls->fields->collection.simple_destructor = (cx_destructor_func)field_destructor;
+    cls->obj_fields = cxHashMapCreateSimple(CX_STORE_POINTERS);
+    cls->obj_fields->collection.simple_destructor = (cx_destructor_func)field_destructor;
     
     return cls;
 }
@@ -60,9 +62,16 @@
 }
 
 void dbuClassAddField(DBUClass *cls, const char *name, DBUField *field) {
+    free(field->name.ptr);
+    field->name = cx_strdup(cx_str(name));
     cxMapPut(cls->fields, name, field);
 }
 
+void dbuClassAddObjField(DBUClass *cls, const char *name, DBUField *field, DBUClass *foreign_cls) {
+    free(field->name.ptr);
+    field->name = cx_strdup(cx_str(name));
+    cxMapPut(cls->obj_fields, foreign_cls->name, field);
+}
 
 
 void dbuClassSetPrimaryKeyInt32(DBUClass *cls, const char *column_name, off_t offset) {

mercurial