@@ -174,6 +174,16 @@ fn (mut g Gen) sql_insert(node ast.SqlStmtLine, expr string, table_name string,
174
174
}
175
175
g.write ('),' )
176
176
177
+ mut member_access_type := '.'
178
+
179
+ if node.scope != unsafe { nil } {
180
+ inserting_object := node.scope.find (node.object_var_name) or { verror (err.str ()) }
181
+
182
+ if inserting_object.typ.is_ptr () {
183
+ member_access_type = '->'
184
+ }
185
+ }
186
+
177
187
g.write ('.data = new_array_from_c_array(${fields.len} , ${fields.len} , sizeof(orm__Primitive),' )
178
188
if fields.len > 0 {
179
189
g.write (' _MOV((orm__Primitive[${fields.len} ]){' )
@@ -193,7 +203,8 @@ fn (mut g Gen) sql_insert(node ast.SqlStmtLine, expr string, table_name string,
193
203
if typ == 'time__Time' {
194
204
typ = 'time'
195
205
}
196
- g.write ('orm__${typ} _to_primitive(${node.object_var_name} .${f.name} ),' )
206
+
207
+ g.write ('orm__${typ} _to_primitive(${node.object_var_name}${member_access_type}${f.name} ),' )
197
208
}
198
209
g.write ('})' )
199
210
} else {
@@ -210,12 +221,12 @@ fn (mut g Gen) sql_insert(node ast.SqlStmtLine, expr string, table_name string,
210
221
g.writeln ('orm__Primitive ${id_name} = orm__int_to_primitive(orm__Connection_name_table[${expr} ._typ]._method_last_id(${expr} ._object));' )
211
222
for i, mut arr in arrs {
212
223
idx := g.new_tmp_var ()
213
- g.writeln ('for (int ${idx} = 0; ${idx} < ${arr.object_var_name} . ${field_names[i]} .len; ${idx} ++) {' )
224
+ g.writeln ('for (int ${idx} = 0; ${idx} < ${arr.object_var_name}${member_access_type} ${field_names[i]} .len; ${idx} ++) {' )
214
225
last_ids := g.new_tmp_var ()
215
226
res_ := g.new_tmp_var ()
216
227
tmp_var := g.new_tmp_var ()
217
228
ctyp := g.typ (arr.table_expr.typ)
218
- g.writeln ('${ctyp} ${tmp_var} = (*(${ctyp} *)array_get(${arr.object_var_name} . ${field_names[i]} , ${idx} ));' )
229
+ g.writeln ('${ctyp} ${tmp_var} = (*(${ctyp} *)array_get(${arr.object_var_name}${member_access_type} ${field_names[i]} , ${idx} ));' )
219
230
arr.object_var_name = tmp_var
220
231
mut fff := []ast.StructField{}
221
232
for f in arr.fields {
0 commit comments