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();
}
void* p = (char*)obj + field.offset;
switch (field.type) {
case a8::reflect::ET_INT32:
{
*((int*)p) = reader.GetValue(field.field_name);
}
break;
case a8::reflect::ET_UINT32:
{
*((unsigned int*)p) = reader.GetValue(field.field_name);
}
break;
case a8::reflect::ET_INT64:
{
*((long long*)p) = reader.GetValue(field.field_name);
}
break;
case a8::reflect::ET_FLOAT:
{
*((float*)p) = reader.GetValue(field.field_name).GetDouble();
}
break;
case a8::reflect::ET_DOUBLE:
{
*((double*)p) = reader.GetValue(field.field_name);
}
break;
case a8::reflect::ET_STRING:
{
*((std::string*)p) = reader.GetValue(field.field_name).GetString();
}
break;
default:
{
abort();
if (reader.KeyExists(field.field_name)) {
switch (field.type) {
case a8::reflect::ET_INT32:
{
*((int*)p) = reader.GetValue(field.field_name);
}
break;
case a8::reflect::ET_UINT32:
{
*((unsigned int*)p) = reader.GetValue(field.field_name);
}
break;
case a8::reflect::ET_INT64:
{
*((long long*)p) = reader.GetValue(field.field_name);
}
break;
case a8::reflect::ET_FLOAT:
{
*((float*)p) = reader.GetValue(field.field_name).GetDouble();
}
break;
case a8::reflect::ET_DOUBLE:
{
*((double*)p) = reader.GetValue(field.field_name);
}
break;
case a8::reflect::ET_STRING:
{
*((std::string*)p) = reader.GetValue(field.field_name).GetString();
}
break;
default:
{
abort();
}
}
obj->__flags__.set(i);
}
obj->__flags__.set(i);
}
meta_list.push_back(obj);
}