diff options
author | Mark Spruiell <mes@zeroc.com> | 2018-03-02 16:07:46 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2018-03-02 16:07:46 -0800 |
commit | 6efa9baad6fbee7c0a41da5703ed7ea27c70cbf7 (patch) | |
tree | 4aff304f44eb76d542b66ecc2fd133c35ba4b2ea /php/src | |
parent | Added TOC (diff) | |
download | ice-6efa9baad6fbee7c0a41da5703ed7ea27c70cbf7.tar.bz2 ice-6efa9baad6fbee7c0a41da5703ed7ea27c70cbf7.tar.xz ice-6efa9baad6fbee7c0a41da5703ed7ea27c70cbf7.zip |
ICE-8703 - PHP test failure in Ice/slicing/objects
Diffstat (limited to 'php/src')
-rw-r--r-- | php/src/php7/Types.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/php/src/php7/Types.cpp b/php/src/php7/Types.cpp index 0c65606376b..b7e274165dc 100644 --- a/php/src/php7/Types.cpp +++ b/php/src/php7/Types.cpp @@ -472,6 +472,8 @@ IcePHP::StreamUtil::getSlicedDataMember(zval* obj, ObjectMap* objectMap) info->typeId = string(Z_STRVAL_P(typeId), Z_STRLEN_P(typeId)); zval* compactId = zend_hash_str_find(Z_OBJPROP_P(s), STRCAST("compactId"), sizeof("compactId") - 1); + assert(Z_TYPE_P(compactId) == IS_INDIRECT); + compactId = Z_INDIRECT_P(compactId); assert(compactId && Z_TYPE_P(compactId) == IS_LONG); info->compactId = static_cast<long>(Z_LVAL_P(compactId)); @@ -520,15 +522,18 @@ IcePHP::StreamUtil::getSlicedDataMember(zval* obj, ObjectMap* objectMap) } ZEND_HASH_FOREACH_END(); - zval* hasOptionalMembers = zend_hash_str_find(Z_OBJPROP_P(s), - STRCAST("hasOptionalMembers"), - sizeof("hasOptionalMembers") - 1); - + zval* hasOptionalMembers = + zend_hash_str_find(Z_OBJPROP_P(s), STRCAST("hasOptionalMembers"), sizeof("hasOptionalMembers") - 1); + assert(Z_TYPE_P(hasOptionalMembers) == IS_INDIRECT); + hasOptionalMembers = Z_INDIRECT_P(hasOptionalMembers); assert(hasOptionalMembers && (Z_TYPE_P(hasOptionalMembers) == IS_TRUE || Z_TYPE_P(hasOptionalMembers) == IS_FALSE)); info->hasOptionalMembers = Z_TYPE_P(hasOptionalMembers) == IS_TRUE; - zval* isLastSlice = zend_hash_str_find(Z_OBJPROP_P(s), STRCAST("isLastSlice"), sizeof("isLastSlice") - 1); + zval* isLastSlice = + zend_hash_str_find(Z_OBJPROP_P(s), STRCAST("isLastSlice"), sizeof("isLastSlice") - 1); + assert(Z_TYPE_P(isLastSlice) == IS_INDIRECT); + isLastSlice = Z_INDIRECT_P(isLastSlice); assert(isLastSlice && (Z_TYPE_P(isLastSlice) == IS_TRUE || Z_TYPE_P(isLastSlice) == IS_FALSE)); info->isLastSlice = Z_TYPE_P(isLastSlice) == IS_TRUE; |