dbutils/field.c

changeset 43
73c1ced3a620
parent 31
287484519844
--- a/dbutils/field.c	Sun Jan 04 17:45:50 2026 +0100
+++ b/dbutils/field.c	Sun Jan 04 18:09:59 2026 +0100
@@ -1238,7 +1238,7 @@
 }
 static int linkedlist_add(DBUObjectResult *result, DBUObject parent, DBUClass *type, void *obj, CxList *fk, const CxAllocator *a) {
     DBUOffsetField *field  = result->userdata1;
-    DBUClass *cls = result->userdata2;
+    DBUClass *cls = result->type;
     CxList **list = (CxList**)(parent+field->offset);
     if(!*list) {
         *list = cxLinkedListCreate(a, CX_STORE_POINTERS);
@@ -1294,13 +1294,14 @@
     memset(field, 0, sizeof(DBUOffsetField));
     field->offset = offset;
     field->def.def = 0;
+    field->field.builder.type = foreign_cls;
     field->field.builder.userdata1 = field;
     field->field.builder.userdata2 = foreign_cls;
     field->field.builder.create = linkedlist_create_obj;
     field->field.builder.add = linkedlist_add;
     field->field.toList = cxlist_tolist;
     // TODO: can we pass name to dbuClassAddObjField?
-    dbuClassAddObjField(cls, NULL, (DBUField*)field, foreign_cls);
+    dbuClassAddObjField(cls, name, (DBUField*)field, foreign_cls);
     field->field.name = name ? cx_strdup(cx_str(name)) : (cxmutstr){NULL,0};
     //dbuClassAddParentObjField(foreign_cls, name, cls, (DBUField*)field);
 }

mercurial