Property prop = null;
Class type = null;
bool isKey = false;
+ bool isTemplateArg = false;
uint offset = 0;
if(objectType)
{
prop = eClass_FindProperty(objectType, "key", objectType.module);
type = mapKeyClass;
+ isTemplateArg = true;
isKey = true;
}
else if(mapDataClass && !strcmp(string, "value"))
{
prop = eClass_FindProperty(objectType, "value", objectType.module);
type = mapDataClass;
+ isTemplateArg = true;
}
else
{
}
else
{
- ((void (*)(void *, void *))(void *)prop.Set)(*object, value.p);
+ if(isTemplateArg)
+ ((void (*)(void *, uint64))(void *)prop.Set)(*object, (uint64)(uintptr)value.p);
+ else
+ ((void (*)(void *, void *))(void *)prop.Set)(*object, value.p);
}
}
}
if(!prop.conversion && (!prop.IsSet || prop.IsSet(object)))
{
DataValue value { };
+ bool isTemplateArg = false;
Class type;
if(mapKeyClass && !strcmp(prop.name, "key"))
+ {
+ isTemplateArg = true;
type = mapKeyClass;
+ }
else if(mapDataClass && !strcmp(prop.name, "value"))
+ {
+ isTemplateArg = true;
type = mapDataClass;
+ }
else
type = eSystem_FindClass(__thisModule, prop.dataTypeString);
+
if(!type)
type = eSystem_FindClass(__thisModule.application, prop.dataTypeString);
if(!type)
}
else
{
- value.p = ((void *(*)(void *))(void *)prop.Get)(object);
+ if(isTemplateArg)
+ value.p = (void *)(uintptr)((uint64 (*)(void *))(void *)prop.Get)(object);
+ else
+ value.p = ((void *(*)(void *))(void *)prop.Get)(object);
}
if(!isFirst) f.Puts(",\n");