mirror of
https://github.com/php/php-src.git
synced 2024-12-19 06:50:17 +08:00
Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3: Fixed bug #62343 (Show class_alias In get_declared_classes())
This commit is contained in:
commit
84630a1109
1
NEWS
1
NEWS
@ -6,6 +6,7 @@ PHP NEWS
|
|||||||
(Dmitry)
|
(Dmitry)
|
||||||
. Fixed bug #64370 (microtime(true) less than $_SERVER['REQUEST_TIME_FLOAT']).
|
. Fixed bug #64370 (microtime(true) less than $_SERVER['REQUEST_TIME_FLOAT']).
|
||||||
(Anatol)
|
(Anatol)
|
||||||
|
. Fixed bug #62343 (Show class_alias In get_declared_classes()) (Dmitry)
|
||||||
|
|
||||||
- PCRE:
|
- PCRE:
|
||||||
. Merged PCRE 8.32. (Anatol)
|
. Merged PCRE 8.32. (Anatol)
|
||||||
|
13
Zend/tests/bug62343.phpt
Normal file
13
Zend/tests/bug62343.phpt
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
--TEST--
|
||||||
|
Bug #62343 (Show class_alias In get_declared_classes())
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
class a { }
|
||||||
|
class_alias("a", "b");
|
||||||
|
$c = get_declared_classes();
|
||||||
|
var_dump(end($c));
|
||||||
|
var_dump(prev($c));
|
||||||
|
?>
|
||||||
|
--EXPECT--
|
||||||
|
string(1) "b"
|
||||||
|
string(1) "a"
|
@ -1640,6 +1640,13 @@ ZEND_FUNCTION(restore_exception_handler)
|
|||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
static int same_name(const char *key, const char *name, zend_uint name_len)
|
||||||
|
{
|
||||||
|
char *lcname = zend_str_tolower_dup(name, name_len);
|
||||||
|
int ret = memcmp(lcname, key, name_len) == 0;
|
||||||
|
efree(lcname);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
static int copy_class_or_interface_name(zend_class_entry **pce TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key)
|
static int copy_class_or_interface_name(zend_class_entry **pce TSRMLS_DC, int num_args, va_list args, zend_hash_key *hash_key)
|
||||||
{
|
{
|
||||||
@ -1651,8 +1658,14 @@ static int copy_class_or_interface_name(zend_class_entry **pce TSRMLS_DC, int nu
|
|||||||
|
|
||||||
if ((hash_key->nKeyLength==0 || hash_key->arKey[0]!=0)
|
if ((hash_key->nKeyLength==0 || hash_key->arKey[0]!=0)
|
||||||
&& (comply_mask == (ce->ce_flags & mask))) {
|
&& (comply_mask == (ce->ce_flags & mask))) {
|
||||||
|
if (ce->refcount > 1 &&
|
||||||
|
(ce->name_length != hash_key->nKeyLength - 1 ||
|
||||||
|
!same_name(hash_key->arKey, ce->name, ce->name_length))) {
|
||||||
|
add_next_index_stringl(array, hash_key->arKey, hash_key->nKeyLength - 1, 1);
|
||||||
|
} else {
|
||||||
add_next_index_stringl(array, ce->name, ce->name_length, 1);
|
add_next_index_stringl(array, ce->name, ce->name_length, 1);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return ZEND_HASH_APPLY_KEEP;
|
return ZEND_HASH_APPLY_KEEP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user