Browse Source

- Fixed bug #62892 (ReflectionClass::getTraitAliases crashes on importing trait methods as private)

pull/203/head
Felipe Pena 14 years ago
parent
commit
7a56ac00a0
  1. 21
      Zend/tests/bug62892.phpt
  2. 6
      ext/reflection/php_reflection.c

21
Zend/tests/bug62892.phpt

@ -0,0 +1,21 @@
--TEST--
Bug #62892 (ReflectionClass::getTraitAliases crashes on importing trait methods as private)
--FILE--
<?php
trait myTrait {
public function run() {}
}
class myClass {
use myTrait {
MyTrait::run as private;
}
}
$class = new \ReflectionClass('myClass');
var_dump($class->getTraitAliases());
?>
--EXPECTF--
array(0) {
}

6
ext/reflection/php_reflection.c

@ -4464,8 +4464,10 @@ ZEND_METHOD(reflection_class, getTraitAliases)
int method_name_len;
zend_trait_method_reference *cur_ref = ce->trait_aliases[i]->trait_method;
method_name_len = spprintf(&method_name, 0, "%s::%s", cur_ref->class_name, cur_ref->method_name);
add_assoc_stringl_ex(return_value, ce->trait_aliases[i]->alias, ce->trait_aliases[i]->alias_len + 1, method_name, method_name_len, 0);
if (ce->trait_aliases[i]->alias) {
method_name_len = spprintf(&method_name, 0, "%s::%s", cur_ref->class_name, cur_ref->method_name);
add_assoc_stringl_ex(return_value, ce->trait_aliases[i]->alias, ce->trait_aliases[i]->alias_len + 1, method_name, method_name_len, 0);
}
i++;
}
}

Loading…
Cancel
Save