summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_execute.c2
-rw-r--r--Zend/zend_hash.c29
2 files changed, 17 insertions, 14 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 890c838667..fe36c4bb68 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1486,7 +1486,7 @@ static inline int zend_binary_assign_op_obj_helper(int (*binary_op)(zval *result
z = Z_OBJ_HT_P(object)->read_property(object, property, 0 TSRMLS_CC);
break;
case ZEND_ASSIGN_DIM:
- z = Z_OBJ_HT_P(object)->read_dimension(object, property, 0 TSRMLS_CC);
+ z = Z_OBJ_HT_P(object)->read_dimension(object, property TSRMLS_CC);
break;
}
SEPARATE_ZVAL_IF_NOT_REF(&z);
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index ac53af332a..95d946d053 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -100,19 +100,22 @@ ZEND_API ulong zend_hash_func(char *arKey, uint nKeyLength)
}
-#define UPDATE_DATA(ht, p, pData, nDataSize) \
- if (nDataSize == sizeof(void*)) { \
- if (!(p)->pDataPtr) { \
- pefree((p)->pData, (ht)->persistent); \
- } \
- memcpy(&(p)->pDataPtr, pData, sizeof(void *)); \
- (p)->pData = &(p)->pDataPtr; \
- } else { \
- if ((p)->pDataPtr) { \
- (p)->pData = (void *) pemalloc(nDataSize, (ht)->persistent); \
- (p)->pDataPtr=NULL; \
- } \
- memcpy((p)->pData, pData, nDataSize); \
+#define UPDATE_DATA(ht, p, pData, nDataSize) \
+ if (nDataSize == sizeof(void*)) { \
+ if (!(p)->pDataPtr) { \
+ pefree((p)->pData, (ht)->persistent); \
+ } \
+ memcpy(&(p)->pDataPtr, pData, sizeof(void *)); \
+ (p)->pData = &(p)->pDataPtr; \
+ } else { \
+ if (!(p)->pDataPtr) { \
+ (p)->pData = (void *) pemalloc(nDataSize, (ht)->persistent); \
+ (p)->pDataPtr=NULL; \
+ } else { \
+ (p)->pData = (void *) perealloc((p)->pData, nDataSize, (ht)->persistent); \
+ /* (p)->pDataPtr is already NULL so no need to initialize it */ \
+ } \
+ memcpy((p)->pData, pData, nDataSize); \
}
#define INIT_DATA(ht, p, pData, nDataSize); \