Fix naked_ptr issue

This commit is contained in:
Nolan Kramer 2024-09-24 17:48:54 -07:00
parent c7a8102b12
commit d63e1c64c3
1 changed files with 7 additions and 3 deletions

View File

@ -3380,14 +3380,18 @@ class CppGenerator : public BaseGenerator {
if (is_pointer) { if (is_pointer) {
code += "{ if(" + out_field + ") { "; code += "{ if(" + out_field + ") { ";
code += "_e->UnPackTo(" + out_field + ".get(), _resolver);"; code += "_e->UnPackTo(" + out_field + GenPtrGet(field) + ", _resolver);";
code += " } else { "; code += " } else { ";
} }
code += out_field + " = "; code += out_field + " = ";
code += GenUnpackVal(field.value.type, "_e", false, field) + ";"; code += GenUnpackVal(field.value.type, "_e", false, field) + ";";
if (is_pointer) { if (is_pointer) {
code += " } } else if (" + out_field + ") { " + out_field + code += " } } else if (" + out_field + ") { " + out_field;
".reset(); }"; if (PtrType(&field) == "naked") {
code += " = nullptr; }";
} else {
code += ".reset(); }";
}
} }
} }
break; break;