diff --git a/src/codegen.inc.php b/src/codegen.inc.php index 7996a9e..6f0dc31 100644 --- a/src/codegen.inc.php +++ b/src/codegen.inc.php @@ -419,16 +419,16 @@ function var_reset($name, \mtgType $type, $default = null) if($default) { - $default = is_array($default) ? $default : json_decode($default, true); - if(is_array($default)) + $default_val = is_array($default) ? $default : json_decode($default, true); + if(is_array($default_val)) { - foreach($default as $k => $v) + foreach($default_val as $k => $v) { $kf = $type->getField($k); $str .= var_reset("$name." . $kf->getName(), $kf->getType(), $v); } } - else if($default === null) + else if(is_null_str($default)) $str .= "$name = null; "; else throw new Exception("Bad default value for struct: " . var_export($default, true)); @@ -441,7 +441,7 @@ function var_reset($name, \mtgType $type, $default = null) function is_null_str($default) { - return is_string($default) && json_decode($default, true) === null; + return is_string($default) && strtolower($default) === 'null'; } function var_sync($fname, \mtgType $type, $buf, array $tokens, $opts)