}
match_len = 1;
+ if (array && Z_ISREF_P(array)) {
+ array = Z_REFVAL_P(array);
+ }
+
if (array && err != REG_NOMATCH) {
match_len = (int) (subs[0].rm_eo - subs[0].rm_so);
string_len = findin_len + 1;
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Regular Expression");
zend_hash_destroy(Z_ARRVAL_P(return_value));
- efree(Z_ARRVAL_P(return_value));
+ efree(Z_ARR_P(return_value));
RETURN_FALSE;
} else {
/* On a real match */
php_ereg_eprint(err, &re TSRMLS_CC);
regfree(&re);
zend_hash_destroy(Z_ARRVAL_P(return_value));
- efree(Z_ARRVAL_P(return_value));
+ efree(Z_ARR_P(return_value));
RETURN_FALSE;
}