]> granicus.if.org Git - php/commitdiff
DI
authorAndrey Hristov <andrey@php.net>
Mon, 10 Mar 2014 16:18:56 +0000 (18:18 +0200)
committerAndrey Hristov <andrey@php.net>
Mon, 10 Mar 2014 16:18:56 +0000 (18:18 +0200)
ext/mysqlnd/mysqlnd_ps.c
ext/mysqlnd/mysqlnd_result.c

index dc97d2d36fae5a813d30b2a23eed48bfdcbc44a5..fc30bddcb5fa0d07b87cfed29bf6f2c60db805e8 100644 (file)
@@ -89,6 +89,12 @@ MYSQLND_METHOD(mysqlnd_stmt, store_result)(MYSQLND_STMT * const s TSRMLS_DC)
        result->type                    = MYSQLND_RES_PS_BUF;
 /*     result->m.row_decoder = php_mysqlnd_rowp_read_binary_protocol; */
 
+       result->stored_data     = mysqlnd_result_buffered_init(result->field_count, TRUE, result->persistent TSRMLS_CC);
+       if (!result->stored_data) {
+               SET_OOM_ERROR(*conn->error_info);
+               DBG_RETURN(NULL);
+       }
+
        ret = result->m.store_result_fetch_data(conn, result, result->meta, TRUE TSRMLS_CC);
 
        result->stored_data->m.fetch_row = mysqlnd_stmt_fetch_row_buffered;
index 2ed6acf3ab425847c2ac787fb44b7497b9101ca7..fc6f48581c6cc6d42298e0a4c9c2155457803de6 100644 (file)
@@ -1140,10 +1140,9 @@ MYSQLND_METHOD(mysqlnd_res, store_result_fetch_data)(MYSQLND_CONN_DATA * const c
 
        DBG_ENTER("mysqlnd_res::store_result_fetch_data");
 
-       result->stored_data     = set = mysqlnd_result_buffered_init(result->field_count, binary_protocol, result->persistent TSRMLS_CC);
+       set = result->stored_data;
 
        if (!set) {
-               SET_OOM_ERROR(*conn->error_info);
                ret = FAIL;
                goto end;
        }
@@ -1271,6 +1270,12 @@ MYSQLND_METHOD(mysqlnd_res, store_result)(MYSQLND_RES * result,
 
        CONN_SET_STATE(conn, CONN_FETCHING_DATA);
 
+       result->stored_data     = mysqlnd_result_buffered_init(result->field_count, flags & MYSQLND_STORE_PS, result->persistent TSRMLS_CC);
+       if (!result->stored_data) {
+               SET_OOM_ERROR(*conn->error_info);
+               DBG_RETURN(NULL);
+       }
+
        ret = result->m.store_result_fetch_data(conn, result, result->meta, flags & MYSQLND_STORE_PS TSRMLS_CC);
        if (FAIL == ret) {
                if (result->stored_data) {