1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

gen_stub: simplify with early returns

This commit is contained in:
Daniel Scherzer
2025-09-04 12:48:24 +03:00
parent f1dd3f2f30
commit 25f62cfa1f

View File

@@ -1872,56 +1872,56 @@ ENDCOMMENT
$noParamEntity = $doc->createEntityReference('no.function.parameters');
$parametersRefSec->appendChild($noParamEntity);
return $parametersRefSec;
} else {
$parametersContainer = $doc->createDocumentFragment();
$parametersContainer->appendChild(new DOMText("\n "));
$parametersList = $doc->createElement('variablelist');
$parametersContainer->appendChild($parametersList);
/*
<varlistentry>
<term><parameter>name</parameter></term>
<listitem>
<simpara>
Description.
</simpara>
</listitem>
</varlistentry>
*/
foreach ($this->args as $arg) {
$parameter = $doc->createElement('parameter', $arg->name);
$parameterTerm = $doc->createElement('term');
$parameterTerm->appendChild($parameter);
$listItemPara = $doc->createElement('simpara');
$listItemPara->append(
"\n ",
"Description.",
"\n ",
);
$parameterEntryListItem = $doc->createElement('listitem');
$parameterEntryListItem->append(
"\n ",
$listItemPara,
"\n ",
);
$parameterEntry = $doc->createElement('varlistentry');
$parameterEntry->append(
"\n ",
$parameterTerm,
"\n ",
$parameterEntryListItem,
"\n ",
);
$parametersList->appendChild(new DOMText("\n "));
$parametersList->appendChild($parameterEntry);
}
$parametersList->appendChild(new DOMText("\n "));
}
$parametersContainer = $doc->createDocumentFragment();
$parametersContainer->appendChild(new DOMText("\n "));
$parametersList = $doc->createElement('variablelist');
$parametersContainer->appendChild($parametersList);
/*
<varlistentry>
<term><parameter>name</parameter></term>
<listitem>
<simpara>
Description.
</simpara>
</listitem>
</varlistentry>
*/
foreach ($this->args as $arg) {
$parameter = $doc->createElement('parameter', $arg->name);
$parameterTerm = $doc->createElement('term');
$parameterTerm->appendChild($parameter);
$listItemPara = $doc->createElement('simpara');
$listItemPara->append(
"\n ",
"Description.",
"\n ",
);
$parameterEntryListItem = $doc->createElement('listitem');
$parameterEntryListItem->append(
"\n ",
$listItemPara,
"\n ",
);
$parameterEntry = $doc->createElement('varlistentry');
$parameterEntry->append(
"\n ",
$parameterTerm,
"\n ",
$parameterEntryListItem,
"\n ",
);
$parametersList->appendChild(new DOMText("\n "));
$parametersList->appendChild($parameterEntry);
}
$parametersList->appendChild(new DOMText("\n "));
$parametersContainer->appendChild(new DOMText("\n "));
$parametersRefSec->appendChild($parametersContainer);
$parametersRefSec->appendChild(new DOMText("\n "));
@@ -2493,8 +2493,6 @@ abstract class VariableLike
protected function getTypeCode(string $variableLikeName, string &$code): string
{
$variableLikeType = $this->getVariableTypeName();
$typeCode = "";
if ($this->type) {
$arginfoType = $this->type->toArginfoType();
if ($arginfoType->hasClassType()) {
@@ -2521,22 +2519,17 @@ abstract class VariableLike
} else {
$code .= "\tzend_type {$variableLikeType}_{$variableLikeName}_type = ZEND_TYPE_INIT_UNION({$variableLikeType}_{$variableLikeName}_type_list, $typeMaskCode);\n";
}
$typeCode = "{$variableLikeType}_{$variableLikeName}_type";
} else {
$escapedClassName = $arginfoType->classTypes[0]->toEscapedName();
$varEscapedClassName = $arginfoType->classTypes[0]->toVarEscapedName();
$code .= "\tzend_string *{$variableLikeType}_{$variableLikeName}_class_{$varEscapedClassName} = zend_string_init(\"{$escapedClassName}\", sizeof(\"{$escapedClassName}\")-1, 1);\n";
$typeCode = "(zend_type) ZEND_TYPE_INIT_CLASS({$variableLikeType}_{$variableLikeName}_class_{$varEscapedClassName}, 0, " . $arginfoType->toTypeMask() . ")";
return "{$variableLikeType}_{$variableLikeName}_type";
}
} else {
$typeCode = "(zend_type) ZEND_TYPE_INIT_MASK(" . $arginfoType->toTypeMask() . ")";
}
} else {
$typeCode = "(zend_type) ZEND_TYPE_INIT_NONE(0)";
}
$escapedClassName = $arginfoType->classTypes[0]->toEscapedName();
$varEscapedClassName = $arginfoType->classTypes[0]->toVarEscapedName();
$code .= "\tzend_string *{$variableLikeType}_{$variableLikeName}_class_{$varEscapedClassName} = zend_string_init(\"{$escapedClassName}\", sizeof(\"{$escapedClassName}\")-1, 1);\n";
return $typeCode;
return "(zend_type) ZEND_TYPE_INIT_CLASS({$variableLikeType}_{$variableLikeName}_class_{$varEscapedClassName}, 0, " . $arginfoType->toTypeMask() . ")";
}
return "(zend_type) ZEND_TYPE_INIT_MASK(" . $arginfoType->toTypeMask() . ")";
}
return "(zend_type) ZEND_TYPE_INIT_NONE(0)";
}
/** @param array<string, ConstInfo> $allConstInfos */
@@ -3311,14 +3304,13 @@ class EnumCaseInfo {
public function getDeclaration(array $allConstInfos): string {
$escapedName = addslashes($this->name);
if ($this->value === null) {
$code = "\n\tzend_enum_add_case_cstr(class_entry, \"$escapedName\", NULL);\n";
} else {
$value = EvaluatedValue::createFromExpression($this->value, null, null, $allConstInfos);
$zvalName = "enum_case_{$escapedName}_value";
$code = "\n" . $value->initializeZval($zvalName);
$code .= "\tzend_enum_add_case_cstr(class_entry, \"$escapedName\", &$zvalName);\n";
return "\n\tzend_enum_add_case_cstr(class_entry, \"$escapedName\", NULL);\n";
}
$value = EvaluatedValue::createFromExpression($this->value, null, null, $allConstInfos);
$zvalName = "enum_case_{$escapedName}_value";
$code = "\n" . $value->initializeZval($zvalName);
$code .= "\tzend_enum_add_case_cstr(class_entry, \"$escapedName\", &$zvalName);\n";
return $code;
}