Fix
This commit is contained in:
parent
2cd1547385
commit
e569572b31
|
@ -152,33 +152,33 @@ function data2value($name, \mtgType $type, $buf, $prefix = '', $tokens = array()
|
|||
if($as_is)
|
||||
$tmp_val = $buf;
|
||||
else
|
||||
$str .= $indent."{$tmp_val} = mtg_php_array_extract_val({$buf}, \$assoc, '{$name}', {$default_value_arg});\n";
|
||||
$str .= $indent."{$tmp_val} = \metagen_php\array_extract_val({$buf}, \$assoc, '{$name}', {$default_value_arg});\n";
|
||||
|
||||
if($type instanceof \mtgBuiltinType)
|
||||
{
|
||||
$str .= $cond_indent."{$tmp_val} = " . apply_value_filters($name, $tokens, "{$tmp_val}"). ";\n";
|
||||
$str .= $cond_indent."{$pname} = mtg_php_val_{$type}({$tmp_val});\n";
|
||||
$str .= $cond_indent."{$pname} = \metagen_php\\val_{$type}({$tmp_val});\n";
|
||||
}
|
||||
else if($type instanceof \mtgMetaStruct)
|
||||
{
|
||||
if(array_key_exists('virtual', $tokens))
|
||||
{
|
||||
$str .= $cond_indent."{$tmp_val} = " . apply_value_filters($name, $tokens, "{$tmp_val}"). ";\n";
|
||||
$str .= $cond_indent."\$tmp_sub_arr__ = mtg_php_val_arr({$tmp_val});\n";
|
||||
$str .= $cond_indent."\$vclass__ = AutogenBundle::getClassName(mtg_php_val_uint32(mtg_php_array_extract_val(\$tmp_sub_arr__, \$assoc, 'vclass__')));\n";
|
||||
$str .= $cond_indent."\$tmp_sub_arr__ = \metagen_php\\val_arr({$tmp_val});\n";
|
||||
$str .= $cond_indent."\$vclass__ = AutogenBundle::getClassName(\metagen_php\\val_uint32(\metagen_php\array_extract_val(\$tmp_sub_arr__, \$assoc, 'vclass__')));\n";
|
||||
$str .= $cond_indent."{$pname} = new \$vclass__(\$tmp_sub_arr__, \$assoc);\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$str .= $cond_indent."{$tmp_val} = " . apply_value_filters($name, $tokens, "{$tmp_val}"). ";\n";
|
||||
$str .= $cond_indent."\$tmp_sub_arr__ = mtg_php_val_arr({$tmp_val});\n";
|
||||
$str .= $cond_indent."\$tmp_sub_arr__ = \metagen_php\\val_arr({$tmp_val});\n";
|
||||
$str .= $cond_indent."{$pname} = new {$type}(\$tmp_sub_arr__, \$assoc);\n";
|
||||
}
|
||||
}
|
||||
else if($type instanceof \mtgArrType)
|
||||
{
|
||||
//TODO: maybe filters should be applied to the whole array as well?
|
||||
$str .= $cond_indent."\$tmp_arr__ = mtg_php_val_arr({$tmp_val});\n";
|
||||
$str .= $cond_indent."\$tmp_arr__ = \metagen_php\\val_arr({$tmp_val});\n";
|
||||
$str .= $cond_indent."foreach(\$tmp_arr__ as \$tmp_arr_item__)\n";
|
||||
$str .= $cond_indent."{\n";
|
||||
//NOTE: removing default for field
|
||||
|
@ -190,7 +190,7 @@ function data2value($name, \mtgType $type, $buf, $prefix = '', $tokens = array()
|
|||
{
|
||||
$str .= $cond_indent."{$tmp_val} = " . apply_value_filters($name, $tokens, "{$tmp_val}"). ";\n";
|
||||
$check_enum_validity = array_key_exists('is_enum_mask', $tokens) ? 'false' : 'true';
|
||||
$str .= $cond_indent."{$pname} = mtg_php_val_enum('$type', {$tmp_val}, {$check_enum_validity});\n";
|
||||
$str .= $cond_indent."{$pname} = \metagen_php\\val_enum('$type', {$tmp_val}, {$check_enum_validity});\n";
|
||||
}
|
||||
else
|
||||
throw new Exception("Unknown type '{$type}'");
|
||||
|
@ -215,26 +215,26 @@ function value2data($name, \mtgType $type, $buf, $prefix = '', $tokens = array()
|
|||
if($type instanceof \mtgBuiltinType)
|
||||
{
|
||||
if($type->isNumeric())
|
||||
$str .= $indent."mtg_php_array_set_value({$buf}, \$assoc, '$name', 1*{$pname});";
|
||||
$str .= $indent."\metagen_php\array_set_value({$buf}, \$assoc, '$name', 1*{$pname});";
|
||||
else if($type->isString())
|
||||
$str .= $indent."mtg_php_array_set_value({$buf}, \$assoc, '$name', ''.{$pname});";
|
||||
$str .= $indent."\metagen_php\array_set_value({$buf}, \$assoc, '$name', ''.{$pname});";
|
||||
else if($type->isBool())
|
||||
$str .= $indent."mtg_php_array_set_value({$buf}, \$assoc, '$name', (bool){$pname});";
|
||||
$str .= $indent."\metagen_php\array_set_value({$buf}, \$assoc, '$name', (bool){$pname});";
|
||||
else if($type->isBlob())
|
||||
$str .= $indent."mtg_php_array_set_value({$buf}, \$assoc, '$name', {$pname});";
|
||||
$str .= $indent."\metagen_php\array_set_value({$buf}, \$assoc, '$name', {$pname});";
|
||||
else
|
||||
throw new Exception("Unknown type '$type'");
|
||||
}
|
||||
else if($type instanceof \mtgMetaStruct)
|
||||
{
|
||||
if(array_key_exists('virtual', $tokens))
|
||||
$str .= $indent."mtg_php_array_set_value({$buf}, \$assoc, '$name', is_array({$pname}) ? {$pname} : {$pname}->export(\$assoc, true/*virtual*/));";
|
||||
$str .= $indent."\metagen_php\array_set_value({$buf}, \$assoc, '$name', is_array({$pname}) ? {$pname} : {$pname}->export(\$assoc, true/*virtual*/));";
|
||||
else
|
||||
$str .= $indent."mtg_php_array_set_value({$buf}, \$assoc, '$name', is_array({$pname}) ? {$pname} : {$pname}->export(\$assoc));";
|
||||
$str .= $indent."\metagen_php\array_set_value({$buf}, \$assoc, '$name', is_array({$pname}) ? {$pname} : {$pname}->export(\$assoc));";
|
||||
}
|
||||
else if($type instanceof \mtgMetaEnum)
|
||||
{
|
||||
$str .= $indent."mtg_php_array_set_value({$buf}, \$assoc, '$name', 1*{$pname});";
|
||||
$str .= $indent."\metagen_php\array_set_value({$buf}, \$assoc, '$name', 1*{$pname});";
|
||||
}
|
||||
else if($type instanceof \mtgArrType)
|
||||
{
|
||||
|
@ -242,7 +242,7 @@ function value2data($name, \mtgType $type, $buf, $prefix = '', $tokens = array()
|
|||
//NOTE: adding optimization, checking if the first item is array
|
||||
$str .= $indent."if(!\$assoc && {$pname} && is_array(current({$pname})))\n";
|
||||
$str .= $indent."{\n";
|
||||
//$str .= " mtg_php_debug('BULK:' . get_class(\$this));\n";
|
||||
//$str .= " \metagen_php\debug('BULK:' . get_class(\$this));\n";
|
||||
$str .= $indent." \$arr_tmp__ = {$pname};\n";
|
||||
$str .= $indent."}\n";
|
||||
$str .= $indent."else\n";
|
||||
|
@ -255,7 +255,7 @@ function value2data($name, \mtgType $type, $buf, $prefix = '', $tokens = array()
|
|||
$str .= $indent." unset(\$arr_tmp__['\$arr_tmp_item__']);\n";
|
||||
$str .= $indent." }\n";
|
||||
$str .= $indent." }\n";
|
||||
$str .= $indent."mtg_php_array_set_value({$buf}, \$assoc, '$name', \$arr_tmp__);\n";
|
||||
$str .= $indent."\metagen_php\array_set_value({$buf}, \$assoc, '$name', \$arr_tmp__);\n";
|
||||
}
|
||||
else
|
||||
throw new Exception("Unknown type '{$type}'");
|
||||
|
|
Loading…
Reference in New Issue