diff options
Diffstat (limited to 'ext/pdo/pdo_dbh.c')
-rw-r--r-- | ext/pdo/pdo_dbh.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index 3ede0ec20b..2b3e639f33 100644 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -470,14 +470,15 @@ static void pdo_stmt_construct(pdo_stmt_t *stmt, zval *object, zend_class_entry fci.retval_ptr_ptr = &retval; if (ctor_args) { HashTable *ht = Z_ARRVAL_P(ctor_args); + uint idx; Bucket *p; fci.param_count = 0; fci.params = safe_emalloc(sizeof(zval*), ht->nNumOfElements, 0); - p = ht->pListHead; - while (p != NULL) { - fci.params[fci.param_count++] = (zval**)p->pData; - p = p->pListNext; + for (idx = 0; idx < ht->nNumUsed; idx++) { + p = ht->arData + idx; + if (!p->xData) continue; + fci.params[fci.param_count++] = (zval**)&p->xData; } } else { fci.param_count = 0; |