This commit is contained in:
aozhiwei 2022-12-26 14:14:04 +08:00
parent 058af9a9be
commit e04f8dd6ae

View File

@ -33,43 +33,45 @@ namespace f8
abort(); abort();
} }
void* p = (char*)obj + field.offset; void* p = (char*)obj + field.offset;
switch (field.type) { if (reader.KeyExists(field.field_name)) {
case a8::reflect::ET_INT32: switch (field.type) {
{ case a8::reflect::ET_INT32:
*((int*)p) = reader.GetValue(field.field_name); {
} *((int*)p) = reader.GetValue(field.field_name);
break; }
case a8::reflect::ET_UINT32: break;
{ case a8::reflect::ET_UINT32:
*((unsigned int*)p) = reader.GetValue(field.field_name); {
} *((unsigned int*)p) = reader.GetValue(field.field_name);
break; }
case a8::reflect::ET_INT64: break;
{ case a8::reflect::ET_INT64:
*((long long*)p) = reader.GetValue(field.field_name); {
} *((long long*)p) = reader.GetValue(field.field_name);
break; }
case a8::reflect::ET_FLOAT: break;
{ case a8::reflect::ET_FLOAT:
*((float*)p) = reader.GetValue(field.field_name).GetDouble(); {
} *((float*)p) = reader.GetValue(field.field_name).GetDouble();
break; }
case a8::reflect::ET_DOUBLE: break;
{ case a8::reflect::ET_DOUBLE:
*((double*)p) = reader.GetValue(field.field_name); {
} *((double*)p) = reader.GetValue(field.field_name);
break; }
case a8::reflect::ET_STRING: break;
{ case a8::reflect::ET_STRING:
*((std::string*)p) = reader.GetValue(field.field_name).GetString(); {
} *((std::string*)p) = reader.GetValue(field.field_name).GetString();
break; }
default: break;
{ default:
abort(); {
abort();
}
} }
obj->__flags__.set(i);
} }
obj->__flags__.set(i);
} }
meta_list.push_back(obj); meta_list.push_back(obj);
} }