Compare commits

...

3 Commits

Author SHA1 Message Date
Alexey Chubar 53661e92cb Using a shared helper method to streamline the generated code
Publish PHP Package / docker (push) Successful in 6s Details
2025-04-18 17:55:49 +03:00
Alexey Chubar 80cbb22dfc Merge
Publish PHP Package / docker (push) Successful in 6s Details
2025-04-18 17:44:58 +03:00
madpwnhammer da88e6b8db Better check for null default values
Publish PHP Package / docker (push) Successful in 6s Details
2025-03-25 16:02:41 +03:00
3 changed files with 9 additions and 13 deletions

View File

@ -1,3 +1,6 @@
## 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 = 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));
@ -445,7 +445,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)

View File

@ -319,14 +319,7 @@ base.SyncFields(ctx);
int fields_amount = {{fields_count(o)}};
var primary_id_mask = FieldsMask.MakeClean(fields_amount);
SetPrimaryFieldsChanged(ref primary_id_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;
return FieldsMask.CheckContentsChanged(fields_amount, ref primary_id_mask, ref fields_mask);
}
public void SetDirtyMask()