From f177b8e65f03bb3ed2f06acdbad277f7358843de Mon Sep 17 00:00:00 2001 From: Xuefer Date: Tue, 13 Nov 2012 08:51:47 +0000 Subject: [PATCH] fix pInternalPointer for xc_hash_copy_if git-svn-id: svn://svn.lighttpd.net/xcache/trunk@1171 c26eb9a1-5813-0410-bd6c-c2e55f420ca7 --- xcache/xc_utils.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xcache/xc_utils.c b/xcache/xc_utils.c index 6b1d89b..fa8af52 100644 --- a/xcache/xc_utils.c +++ b/xcache/xc_utils.c @@ -573,9 +573,6 @@ void xc_hash_copy_if(HashTable *target, HashTable *source, copy_ctor_func_t pCop p = source->pListHead; while (p) { if (checker(p->pData)) { - if (setTargetPointer && source->pInternalPointer == p) { - target->pInternalPointer = NULL; - } if (p->nKeyLength) { zend_u_hash_quick_update(target, p->key.type, ZSTR(BUCKET_KEY_S(p)), p->nKeyLength, p->h, p->pData, size, &new_entry); } else { @@ -584,6 +581,9 @@ void xc_hash_copy_if(HashTable *target, HashTable *source, copy_ctor_func_t pCop if (pCopyConstructor) { pCopyConstructor(new_entry); } + if (setTargetPointer && source->pInternalPointer == p) { + target->pInternalPointer = new_entry; + } } p = p->pListNext; }