Skip to content

Commit 2b87043

Browse files
committed
Convert registration function to macro
1 parent a351cfc commit 2b87043

File tree

7 files changed

+174
-174
lines changed

7 files changed

+174
-174
lines changed

Zend/zend_exceptions_arginfo.h

Lines changed: 78 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -186,128 +186,128 @@ static const zend_function_entry class_UnhandledMatchError_methods[] = {
186186
};
187187

188188
#define register_class_Throwable(class_entry, class_entry_Stringable) \
189-
do { \
190-
zend_class_entry ce; \
189+
{ \
190+
zend_class_entry ce; \
191191
\
192-
INIT_CLASS_ENTRY(ce, "Throwable", class_Throwable_methods); \
193-
class_entry = zend_register_internal_interface(&ce); \
194-
} while (0)
192+
INIT_CLASS_ENTRY(ce, "Throwable", class_Throwable_methods); \
193+
class_entry = zend_register_internal_interface(&ce); \
194+
}
195195

196196
#define register_class_Exception(class_entry, class_entry_Throwable) \
197-
do { \
198-
zend_class_entry ce; \
197+
{ \
198+
zend_class_entry ce; \
199199
\
200-
INIT_CLASS_ENTRY(ce, "Exception", class_Exception_methods); \
201-
class_entry = zend_register_internal_class_ex(&ce, NULL); \
202-
zend_class_implements(class_entry, 1, class_entry_Throwable); \
200+
INIT_CLASS_ENTRY(ce, "Exception", class_Exception_methods); \
201+
class_entry = zend_register_internal_class_ex(&ce, NULL); \
202+
zend_class_implements(class_entry, 1, class_entry_Throwable); \
203203
\
204-
zend_declare_property_string(class_entry, "message", sizeof("message") - 1, "", ZEND_ACC_PROTECTED); \
204+
zend_declare_property_string(class_entry, "message", sizeof("message") - 1, "", ZEND_ACC_PROTECTED); \
205205
\
206-
zend_declare_property_string(class_entry, "string", sizeof("string") - 1, "", ZEND_ACC_PRIVATE); \
206+
zend_declare_property_string(class_entry, "string", sizeof("string") - 1, "", ZEND_ACC_PRIVATE); \
207207
\
208-
zend_declare_property_long(class_entry, "code", sizeof("code") - 1, 0, ZEND_ACC_PROTECTED); \
208+
zend_declare_property_long(class_entry, "code", sizeof("code") - 1, 0, ZEND_ACC_PROTECTED); \
209209
\
210-
zend_declare_property_null(class_entry, "file", sizeof("file") - 1, ZEND_ACC_PROTECTED); \
210+
zend_declare_property_null(class_entry, "file", sizeof("file") - 1, ZEND_ACC_PROTECTED); \
211211
\
212-
zend_declare_property_null(class_entry, "line", sizeof("line") - 1, ZEND_ACC_PROTECTED); \
212+
zend_declare_property_null(class_entry, "line", sizeof("line") - 1, ZEND_ACC_PROTECTED); \
213213
\
214-
zval property_trace_default_value; \
215-
ZVAL_EMPTY_ARRAY(&property_trace_default_value); \
216-
zend_declare_typed_property(class_entry, ZSTR_KNOWN(ZEND_STR_TRACE), &property_trace_default_value, ZEND_ACC_PRIVATE, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_ARRAY)); \
217-
} while (0)
214+
zval property_trace_default_value; \
215+
ZVAL_EMPTY_ARRAY(&property_trace_default_value); \
216+
zend_declare_typed_property(class_entry, ZSTR_KNOWN(ZEND_STR_TRACE), &property_trace_default_value, ZEND_ACC_PRIVATE, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_ARRAY)); \
217+
}
218218

219219
#define register_class_ErrorException(class_entry, class_entry_Exception) \
220-
do { \
221-
zend_class_entry ce; \
220+
{ \
221+
zend_class_entry ce; \
222222
\
223-
INIT_CLASS_ENTRY(ce, "ErrorException", class_ErrorException_methods); \
224-
class_entry = zend_register_internal_class_ex(&ce, class_entry_Exception); \
225-
} while (0)
223+
INIT_CLASS_ENTRY(ce, "ErrorException", class_ErrorException_methods); \
224+
class_entry = zend_register_internal_class_ex(&ce, class_entry_Exception); \
225+
}
226226

227227
#define register_class_Error(class_entry, class_entry_Throwable) \
228-
do { \
229-
zend_class_entry ce; \
228+
{ \
229+
zend_class_entry ce; \
230230
\
231-
INIT_CLASS_ENTRY(ce, "Error", class_Error_methods); \
232-
class_entry = zend_register_internal_class_ex(&ce, NULL); \
233-
zend_class_implements(class_entry, 1, class_entry_Throwable); \
231+
INIT_CLASS_ENTRY(ce, "Error", class_Error_methods); \
232+
class_entry = zend_register_internal_class_ex(&ce, NULL); \
233+
zend_class_implements(class_entry, 1, class_entry_Throwable); \
234234
\
235-
zend_declare_property_string(class_entry, "message", sizeof("message") - 1, "", ZEND_ACC_PROTECTED); \
235+
zend_declare_property_string(class_entry, "message", sizeof("message") - 1, "", ZEND_ACC_PROTECTED); \
236236
\
237-
zend_declare_property_string(class_entry, "string", sizeof("string") - 1, "", ZEND_ACC_PRIVATE); \
237+
zend_declare_property_string(class_entry, "string", sizeof("string") - 1, "", ZEND_ACC_PRIVATE); \
238238
\
239-
zend_declare_property_long(class_entry, "code", sizeof("code") - 1, 0, ZEND_ACC_PROTECTED); \
239+
zend_declare_property_long(class_entry, "code", sizeof("code") - 1, 0, ZEND_ACC_PROTECTED); \
240240
\
241-
zend_declare_property_null(class_entry, "file", sizeof("file") - 1, ZEND_ACC_PROTECTED); \
241+
zend_declare_property_null(class_entry, "file", sizeof("file") - 1, ZEND_ACC_PROTECTED); \
242242
\
243-
zend_declare_property_null(class_entry, "line", sizeof("line") - 1, ZEND_ACC_PROTECTED); \
243+
zend_declare_property_null(class_entry, "line", sizeof("line") - 1, ZEND_ACC_PROTECTED); \
244244
\
245-
zval property_trace_default_value; \
246-
ZVAL_EMPTY_ARRAY(&property_trace_default_value); \
247-
zend_declare_typed_property(class_entry, ZSTR_KNOWN(ZEND_STR_TRACE), &property_trace_default_value, ZEND_ACC_PRIVATE, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_ARRAY)); \
248-
} while (0)
245+
zval property_trace_default_value; \
246+
ZVAL_EMPTY_ARRAY(&property_trace_default_value); \
247+
zend_declare_typed_property(class_entry, ZSTR_KNOWN(ZEND_STR_TRACE), &property_trace_default_value, ZEND_ACC_PRIVATE, NULL, (zend_type) ZEND_TYPE_INIT_MASK(MAY_BE_ARRAY)); \
248+
}
249249

250250
#define register_class_CompileError(class_entry, class_entry_Error) \
251-
do { \
252-
zend_class_entry ce; \
251+
{ \
252+
zend_class_entry ce; \
253253
\
254-
INIT_CLASS_ENTRY(ce, "CompileError", class_CompileError_methods); \
255-
class_entry = zend_register_internal_class_ex(&ce, class_entry_Error); \
256-
} while (0)
254+
INIT_CLASS_ENTRY(ce, "CompileError", class_CompileError_methods); \
255+
class_entry = zend_register_internal_class_ex(&ce, class_entry_Error); \
256+
}
257257

258258
#define register_class_ParseError(class_entry, class_entry_CompileError) \
259-
do { \
260-
zend_class_entry ce; \
259+
{ \
260+
zend_class_entry ce; \
261261
\
262-
INIT_CLASS_ENTRY(ce, "ParseError", class_ParseError_methods); \
263-
class_entry = zend_register_internal_class_ex(&ce, class_entry_CompileError); \
264-
} while (0)
262+
INIT_CLASS_ENTRY(ce, "ParseError", class_ParseError_methods); \
263+
class_entry = zend_register_internal_class_ex(&ce, class_entry_CompileError); \
264+
}
265265

266266
#define register_class_TypeError(class_entry, class_entry_Error) \
267-
do { \
268-
zend_class_entry ce; \
267+
{ \
268+
zend_class_entry ce; \
269269
\
270-
INIT_CLASS_ENTRY(ce, "TypeError", class_TypeError_methods); \
271-
class_entry = zend_register_internal_class_ex(&ce, class_entry_Error); \
272-
} while (0)
270+
INIT_CLASS_ENTRY(ce, "TypeError", class_TypeError_methods); \
271+
class_entry = zend_register_internal_class_ex(&ce, class_entry_Error); \
272+
}
273273

274274
#define register_class_ArgumentCountError(class_entry, class_entry_TypeError) \
275-
do { \
276-
zend_class_entry ce; \
275+
{ \
276+
zend_class_entry ce; \
277277
\
278-
INIT_CLASS_ENTRY(ce, "ArgumentCountError", class_ArgumentCountError_methods); \
279-
class_entry = zend_register_internal_class_ex(&ce, class_entry_TypeError); \
280-
} while (0)
278+
INIT_CLASS_ENTRY(ce, "ArgumentCountError", class_ArgumentCountError_methods); \
279+
class_entry = zend_register_internal_class_ex(&ce, class_entry_TypeError); \
280+
}
281281

282282
#define register_class_ValueError(class_entry, class_entry_Error) \
283-
do { \
284-
zend_class_entry ce; \
283+
{ \
284+
zend_class_entry ce; \
285285
\
286-
INIT_CLASS_ENTRY(ce, "ValueError", class_ValueError_methods); \
287-
class_entry = zend_register_internal_class_ex(&ce, class_entry_Error); \
288-
} while (0)
286+
INIT_CLASS_ENTRY(ce, "ValueError", class_ValueError_methods); \
287+
class_entry = zend_register_internal_class_ex(&ce, class_entry_Error); \
288+
}
289289

290290
#define register_class_ArithmeticError(class_entry, class_entry_Error) \
291-
do { \
292-
zend_class_entry ce; \
291+
{ \
292+
zend_class_entry ce; \
293293
\
294-
INIT_CLASS_ENTRY(ce, "ArithmeticError", class_ArithmeticError_methods); \
295-
class_entry = zend_register_internal_class_ex(&ce, class_entry_Error); \
296-
} while (0)
294+
INIT_CLASS_ENTRY(ce, "ArithmeticError", class_ArithmeticError_methods); \
295+
class_entry = zend_register_internal_class_ex(&ce, class_entry_Error); \
296+
}
297297

298298
#define register_class_DivisionByZeroError(class_entry, class_entry_ArithmeticError) \
299-
do { \
300-
zend_class_entry ce; \
299+
{ \
300+
zend_class_entry ce; \
301301
\
302-
INIT_CLASS_ENTRY(ce, "DivisionByZeroError", class_DivisionByZeroError_methods); \
303-
class_entry = zend_register_internal_class_ex(&ce, class_entry_ArithmeticError); \
304-
} while (0)
302+
INIT_CLASS_ENTRY(ce, "DivisionByZeroError", class_DivisionByZeroError_methods); \
303+
class_entry = zend_register_internal_class_ex(&ce, class_entry_ArithmeticError); \
304+
}
305305

306306
#define register_class_UnhandledMatchError(class_entry, class_entry_Error) \
307-
do { \
308-
zend_class_entry ce; \
307+
{ \
308+
zend_class_entry ce; \
309309
\
310-
INIT_CLASS_ENTRY(ce, "UnhandledMatchError", class_UnhandledMatchError_methods); \
311-
class_entry = zend_register_internal_class_ex(&ce, class_entry_Error); \
312-
} while (0)
310+
INIT_CLASS_ENTRY(ce, "UnhandledMatchError", class_UnhandledMatchError_methods); \
311+
class_entry = zend_register_internal_class_ex(&ce, class_entry_Error); \
312+
}
313313

build/gen_stub.php

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -734,13 +734,13 @@ function (Expr $expr) use (&$defaultValueConstant) {
734734
if ($this->isKnownName) {
735735
$nameCode = "ZSTR_KNOWN(ZEND_STR_" . strtoupper($propertyName) . ")";
736736
} else {
737-
$code .= " zend_string *property_{$propertyName}_name = zend_string_init(\"$propertyName\", sizeof(\"$propertyName\") - 1, 1); \\\n";
737+
$code .= "\tzend_string *property_{$propertyName}_name = zend_string_init(\"$propertyName\", sizeof(\"$propertyName\") - 1, 1); \\\n";
738738
$nameCode = "property_{$propertyName}_name";
739739
}
740740

741-
$code .= " zend_declare_typed_property(class_entry, $nameCode, &property_{$propertyName}_default_value, " . $this->getFlagsAsString() . ", NULL, $typeCode); \\\n";
741+
$code .= "\tzend_declare_typed_property(class_entry, $nameCode, &property_{$propertyName}_default_value, " . $this->getFlagsAsString() . ", NULL, $typeCode); \\\n";
742742
if (!$this->isKnownName) {
743-
$code .= " zend_string_release(property_{$propertyName}_name); \\\n";
743+
$code .= "\tzend_string_release(property_{$propertyName}_name); \\\n";
744744
}
745745
} else {
746746
if ($this->isKnownName) {
@@ -749,28 +749,28 @@ function (Expr $expr) use (&$defaultValueConstant) {
749749

750750
switch (gettype($defaultValue)) {
751751
case "NULL":
752-
$code .= " zend_declare_property_null(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, " . $this->getFlagsAsString() . "); \\\n";
752+
$code .= "\tzend_declare_property_null(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, " . $this->getFlagsAsString() . "); \\\n";
753753
break;
754754

755755
case "boolean":
756-
$code .= " zend_declare_property_bool(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, " . ((int) $defaultValue) . ", " . $this->getFlagsAsString() . "); \\\n";
756+
$code .= "\tzend_declare_property_bool(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, " . ((int) $defaultValue) . ", " . $this->getFlagsAsString() . "); \\\n";
757757
break;
758758

759759
case "integer":
760-
$code .= " zend_declare_property_long(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, " . $defaultValue . ", " . $this->getFlagsAsString() . "); \\\n";
760+
$code .= "\tzend_declare_property_long(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, " . $defaultValue . ", " . $this->getFlagsAsString() . "); \\\n";
761761
break;
762762

763763
case "double":
764-
$code .= " zend_declare_property_double(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, " . $defaultValue . ", " . $this->getFlagsAsString() . "); \\\n";
764+
$code .= "\tzend_declare_property_double(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, " . $defaultValue . ", " . $this->getFlagsAsString() . "); \\\n";
765765
break;
766766

767767
case "string":
768-
$code .= " zend_declare_property_string(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, \"" . $defaultValue . "\", " . $this->getFlagsAsString() . "); \\\n";
768+
$code .= "\tzend_declare_property_string(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, \"" . $defaultValue . "\", " . $this->getFlagsAsString() . "); \\\n";
769769
break;
770770

771771
case "array":
772772
$code .= $this->initializeValue($defaultValue);
773-
$code .= " zend_declare_property_ex(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, property_{$propertyName}_default_value, " . $this->getFlagsAsString() . "); \\\n";
773+
$code .= "\tzend_declare_property_ex(class_entry, \"$propertyName\", sizeof(\"$propertyName\") - 1, property_{$propertyName}_default_value, " . $this->getFlagsAsString() . "); \\\n";
774774
break;
775775

776776
default:
@@ -789,36 +789,36 @@ private function initializeValue($value): string
789789
$name = $this->name->property;
790790
$zvalName = "property_{$name}_default_value";
791791

792-
$code = " zval $zvalName; \\\n";
792+
$code = "\tzval $zvalName; \\\n";
793793

794794
switch (gettype($value)) {
795795
case "NULL":
796-
$code .= " ZVAL_NULL(&$zvalName); \\\n";
796+
$code .= "\tZVAL_NULL(&$zvalName); \\\n";
797797
break;
798798

799799
case "boolean":
800-
$code .= " ZVAL_BOOL(&$zvalName, " . ((int) $value) . "); \\\n";
800+
$code .= "\tZVAL_BOOL(&$zvalName, " . ((int) $value) . "); \\\n";
801801
break;
802802

803803
case "integer":
804-
$code .= " ZVAL_LONG(&$zvalName, $value); \\\n";
804+
$code .= "\tZVAL_LONG(&$zvalName, $value); \\\n";
805805
break;
806806

807807
case "double":
808-
$code .= " ZVAL_DOUBLE(&$zvalName, $value); \\\n";
808+
$code .= "\tZVAL_DOUBLE(&$zvalName, $value); \\\n";
809809
break;
810810

811811
case "string":
812812
if (empty($value)) {
813-
$code .= " ZVAL_EMPTY_STRING(&$zvalName); \\\n";
813+
$code .= "\tZVAL_EMPTY_STRING(&$zvalName); \\\n";
814814
} else {
815-
$code .= " ZVAL_STRING(&$zvalName, \"$value\"); \\\n";
815+
$code .= "\tZVAL_STRING(&$zvalName, \"$value\"); \\\n";
816816
}
817817
break;
818818

819819
case "array":
820820
if (empty($value)) {
821-
$code .= " ZVAL_EMPTY_ARRAY(&$zvalName); \\\n";
821+
$code .= "\tZVAL_EMPTY_ARRAY(&$zvalName); \\\n";
822822
} else {
823823
throw new Exception("Unimplemented property default value");
824824
}
@@ -914,27 +914,27 @@ public function getInititization(): string
914914
$code .= implode(", ", $params);
915915
$code .= ") \\\n";
916916

917-
$code .= "do { \\\n";
918-
$code .= " zend_class_entry ce; \\\n \\\n";
919-
$code .= " INIT_CLASS_ENTRY(ce, \"{$this->name}\", class_{$this->name}_methods); \\\n";
917+
$code .= "{ \\\n";
918+
$code .= "\tzend_class_entry ce; \\\n \\\n";
919+
$code .= "\tINIT_CLASS_ENTRY(ce, \"{$this->name}\", class_{$this->name}_methods); \\\n";
920920
if ($this->isClass) {
921-
$code .= " class_entry = zend_register_internal_class_ex(&ce, " . (isset($this->extends[0]) ? "class_entry_" . $this->extends[0] : "NULL") . "); \\\n";
921+
$code .= "\tclass_entry = zend_register_internal_class_ex(&ce, " . (isset($this->extends[0]) ? "class_entry_" . $this->extends[0] : "NULL") . "); \\\n";
922922
} else {
923-
$code .= " class_entry = zend_register_internal_interface(&ce); \\\n";
923+
$code .= "\tclass_entry = zend_register_internal_interface(&ce); \\\n";
924924
}
925925
if ($this->getFlagsAsString()) {
926-
$code .= " class_entry->ce_flags |= " . $this->getFlagsAsString() . "; \\\n";
926+
$code .= "\tclass_entry->ce_flags |= " . $this->getFlagsAsString() . "; \\\n";
927927
}
928928

929929
foreach ($this->implements as $implements) {
930-
$code .= " zend_class_implements(class_entry, 1, class_entry_$implements); \\\n";
930+
$code .= "\tzend_class_implements(class_entry, 1, class_entry_$implements); \\\n";
931931
}
932932

933933
foreach ($this->propertyInfos as $property) {
934934
$code .= $property->getDeclaration();
935935
}
936936

937-
$code .= "} while (0)\n\n";
937+
$code .= "}\n\n";
938938

939939
return $code;
940940
}

ext/curl/curl_file_arginfo.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,16 @@ static const zend_function_entry class_CURLFile_methods[] = {
4242
};
4343

4444
#define register_class_CURLFile(class_entry) \
45-
do { \
46-
zend_class_entry ce; \
45+
{ \
46+
zend_class_entry ce; \
4747
\
48-
INIT_CLASS_ENTRY(ce, "CURLFile", class_CURLFile_methods); \
49-
class_entry = zend_register_internal_class_ex(&ce, NULL); \
48+
INIT_CLASS_ENTRY(ce, "CURLFile", class_CURLFile_methods); \
49+
class_entry = zend_register_internal_class_ex(&ce, NULL); \
5050
\
51-
zend_declare_property_string(class_entry, "name", sizeof("name") - 1, "", ZEND_ACC_PUBLIC); \
51+
zend_declare_property_string(class_entry, "name", sizeof("name") - 1, "", ZEND_ACC_PUBLIC); \
5252
\
53-
zend_declare_property_string(class_entry, "mime", sizeof("mime") - 1, "", ZEND_ACC_PUBLIC); \
53+
zend_declare_property_string(class_entry, "mime", sizeof("mime") - 1, "", ZEND_ACC_PUBLIC); \
5454
\
55-
zend_declare_property_string(class_entry, "postname", sizeof("postname") - 1, "", ZEND_ACC_PUBLIC); \
56-
} while (0)
55+
zend_declare_property_string(class_entry, "postname", sizeof("postname") - 1, "", ZEND_ACC_PUBLIC); \
56+
}
5757

ext/intl/transliterator/transliterator_arginfo.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,12 @@ static const zend_function_entry class_Transliterator_methods[] = {
5252
};
5353

5454
#define register_class_Transliterator(class_entry) \
55-
do { \
56-
zend_class_entry ce; \
55+
{ \
56+
zend_class_entry ce; \
5757
\
58-
INIT_CLASS_ENTRY(ce, "Transliterator", class_Transliterator_methods); \
59-
class_entry = zend_register_internal_class_ex(&ce, NULL); \
58+
INIT_CLASS_ENTRY(ce, "Transliterator", class_Transliterator_methods); \
59+
class_entry = zend_register_internal_class_ex(&ce, NULL); \
6060
\
61-
zend_declare_property_null(class_entry, "id", sizeof("id") - 1, ZEND_ACC_PUBLIC); \
62-
} while (0)
61+
zend_declare_property_null(class_entry, "id", sizeof("id") - 1, ZEND_ACC_PUBLIC); \
62+
}
6363

0 commit comments

Comments
 (0)