1
This commit is contained in:
parent
058af9a9be
commit
e04f8dd6ae
72
f8/utils.h
72
f8/utils.h
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user