summaryrefslogtreecommitdiff
path: root/ext/spl/php_spl.c
diff options
context:
space:
mode:
authorBogdan Padalko <pinepain@gmail.com>2016-01-12 01:26:34 +0200
committerNikita Popov <nikic@php.net>2016-01-12 16:47:21 +0100
commit2b4625d68737c553c1fa50a5442bc976814ae855 (patch)
tree585ef9cf6cf4a3ce759308daa3e9f34dccf7ca80 /ext/spl/php_spl.c
parentbec0aec11691fa712750206d1b2cdd34bf6fc5a5 (diff)
downloadphp-git-2b4625d68737c553c1fa50a5442bc976814ae855.tar.gz
Remove obj handlers ptr value from spl_object_hash()
We still keep the same output length, for people who rely on the return value having a specific format. The handler part will now simply be always the same (it was the same nearly always anyway). The motivation behind this change is to avoid breaking spl_object_hash() and SplObjectStorage if an extension changes the handlers table of an object. This has come up, for example, in weakref implementations.
Diffstat (limited to 'ext/spl/php_spl.c')
-rw-r--r--ext/spl/php_spl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c
index 57e43d4fae..9c7611d117 100644
--- a/ext/spl/php_spl.c
+++ b/ext/spl/php_spl.c
@@ -777,7 +777,7 @@ PHPAPI zend_string *php_spl_object_hash(zval *obj) /* {{{*/
}
hash_handle = SPL_G(hash_mask_handle)^(intptr_t)Z_OBJ_HANDLE_P(obj);
- hash_handlers = SPL_G(hash_mask_handlers)^(intptr_t)Z_OBJ_HT_P(obj);
+ hash_handlers = SPL_G(hash_mask_handlers);
return strpprintf(32, "%016lx%016lx", hash_handle, hash_handlers);
}