]> granicus.if.org Git - php/commitdiff
fix init, new smart_str struct (use zend_string now)
authorPierre Joye <pierre.php@gmail.com>
Sat, 17 May 2014 13:29:25 +0000 (15:29 +0200)
committerPierre Joye <pierre.php@gmail.com>
Sat, 17 May 2014 13:29:25 +0000 (15:29 +0200)
ext/mysqlnd/mysqlnd_alloc.c

index 42ce55a36a46993507ba3d9c4b9623b12da4de77..c3228aa4f101e49bc6c69176d61c3bee1271c00e 100644 (file)
@@ -582,7 +582,7 @@ char * _mysqlnd_pestrndup(const char * const ptr, size_t length, zend_bool persi
 char * _mysqlnd_pestrdup(const char * const ptr, zend_bool persistent MYSQLND_MEM_D)
 {
        char * ret;
-       smart_str tmp_str = {0, 0, 0};
+       smart_str tmp_str = {0, 0};
        const char * p = ptr;
        zend_bool collect_memory_statistics = MYSQLND_G(collect_memory_statistics);
        TRACE_ALLOC_ENTER(mysqlnd_pestrdup_name);
@@ -597,11 +597,11 @@ char * _mysqlnd_pestrdup(const char * const ptr, zend_bool persistent MYSQLND_ME
                smart_str_appendc(&tmp_str, *p);
        } while (*p++);
 
-       ret = (persistent) ? __zend_malloc(tmp_str.len + sizeof(size_t)) : _emalloc(REAL_SIZE(tmp_str.len + sizeof(size_t)) ZEND_FILE_LINE_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
-       memcpy(FAKE_PTR(ret), tmp_str.c, tmp_str.len);
+       ret = (persistent) ? __zend_malloc(tmp_str.s->len + sizeof(size_t)) : _emalloc(REAL_SIZE(tmp_str.s->len + sizeof(size_t)) ZEND_FILE_LINE_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
+       memcpy(FAKE_PTR(ret), tmp_str.s->val, tmp_str.s->len);
 
        if (ret && collect_memory_statistics) {
-               *(size_t *) ret = tmp_str.len;
+               *(size_t *) ret = tmp_str.s->len;
                MYSQLND_INC_GLOBAL_STATISTIC(persistent? STAT_MEM_STRDUP_COUNT : STAT_MEM_ESTRDUP_COUNT);
        }
        smart_str_free(&tmp_str);