Compare commits

..

No commits in common. "master" and "v7.0.0" have entirely different histories.

3 changed files with 13 additions and 9 deletions

View File

@ -1,6 +1,3 @@
## v7.1.0
- Using a shared helper method to streamline the generated code
## v7.0.0
- Using a dedicated wrapper for i18n strings to streamline the generated code

View File

@ -423,16 +423,16 @@ function var_reset($name, \mtgType $type, $default = null)
if($default)
{
$default_val = is_array($default) ? $default : json_decode($default, true);
if(is_array($default_val))
$default = is_array($default) ? $default : json_decode($default, true);
if(is_array($default))
{
foreach($default_val as $k => $v)
foreach($default as $k => $v)
{
$kf = $type->getField($k);
$str .= var_reset("$name." . $kf->getName(), $kf->getType(), $v);
}
}
else if(is_null_str($default))
else if($default === null)
$str .= "$name = null; ";
else
throw new Exception("Bad default value for struct: " . var_export($default, true));
@ -445,7 +445,7 @@ function var_reset($name, \mtgType $type, $default = null)
function is_null_str($default)
{
return is_string($default) && strtolower($default) === 'null';
return is_string($default) && json_decode($default, true) === null;
}
function var_sync($fname, \mtgType $type, $buf, array $tokens, $opts)

View File

@ -319,7 +319,14 @@ base.SyncFields(ctx);
int fields_amount = {{fields_count(o)}};
var primary_id_mask = FieldsMask.MakeClean(fields_amount);
SetPrimaryFieldsChanged(ref primary_id_mask);
return FieldsMask.CheckContentsChanged(fields_amount, ref primary_id_mask, ref fields_mask);
for(int i = 0; i < fields_amount; i++)
{
bool is_primary_id = primary_id_mask.IsDirty(i);
if(!is_primary_id && fields_mask.IsDirty(i))
return true;
}
return false;
}
public void SetDirtyMask()