@@ -179,11 +179,37 @@ static int zend_test_class_call_method(zend_string *method, zend_object *object,
179
179
}
180
180
/* }}} */
181
181
182
+ static ZEND_METHOD (_ZendTestClass , varianceTest ) /* {{{ */ {
183
+ RETURN_TRUE ;
184
+ }
185
+ /* }}} */
186
+
187
+ static ZEND_METHOD (_ZendTestChildClass , varianceTest ) /* {{{ */ {
188
+ RETURN_TRUE ;
189
+ }
190
+ /* }}} */
191
+
182
192
static ZEND_METHOD (_ZendTestTrait , testMethod ) /* {{{ */ {
183
193
RETURN_TRUE ;
184
194
}
185
195
/* }}} */
186
196
197
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX (arginfo_parent , 0 , 0 , _ZendTestClass , 0 )
198
+ ZEND_END_ARG_INFO ()
199
+
200
+ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX (arginfo_child , 0 , 0 , _ZendTestChildClass , 0 )
201
+ ZEND_END_ARG_INFO ()
202
+
203
+ static const zend_function_entry zend_test_class_methods [] = {
204
+ ZEND_ME (_ZendTestClass , varianceTest , arginfo_parent , ZEND_ACC_PUBLIC )
205
+ ZEND_FE_END
206
+ };
207
+
208
+ static const zend_function_entry zend_test_child_class_methods [] = {
209
+ ZEND_ME (_ZendTestChildClass , varianceTest , arginfo_child , ZEND_ACC_PUBLIC )
210
+ ZEND_FE_END
211
+ };
212
+
187
213
static const zend_function_entry zend_test_trait_methods [] = {
188
214
ZEND_ME (_ZendTestTrait , testMethod , NULL , ZEND_ACC_PUBLIC )
189
215
ZEND_FE_END
@@ -196,7 +222,7 @@ PHP_MINIT_FUNCTION(zend_test)
196
222
INIT_CLASS_ENTRY (class_entry , "_ZendTestInterface" , NULL );
197
223
zend_test_interface = zend_register_internal_interface (& class_entry );
198
224
zend_declare_class_constant_long (zend_test_interface , ZEND_STRL ("DUMMY" ), 0 );
199
- INIT_CLASS_ENTRY (class_entry , "_ZendTestClass" , NULL );
225
+ INIT_CLASS_ENTRY (class_entry , "_ZendTestClass" , zend_test_class_methods );
200
226
zend_test_class = zend_register_internal_class_ex (& class_entry , NULL );
201
227
zend_class_implements (zend_test_class , 1 , zend_test_interface );
202
228
zend_test_class -> create_object = zend_test_class_new ;
@@ -234,7 +260,7 @@ PHP_MINIT_FUNCTION(zend_test)
234
260
zend_string_release (name );
235
261
}
236
262
237
- INIT_CLASS_ENTRY (class_entry , "_ZendTestChildClass" , NULL );
263
+ INIT_CLASS_ENTRY (class_entry , "_ZendTestChildClass" , zend_test_child_class_methods );
238
264
zend_test_child_class = zend_register_internal_class_ex (& class_entry , zend_test_class );
239
265
240
266
memcpy (& zend_test_class_handlers , & std_object_handlers , sizeof (zend_object_handlers ));
0 commit comments