|
|
|
@ -167,15 +167,15 @@ dbm_info *php_find_dbm(pval *id) |
|
|
|
int info_type; |
|
|
|
ELS_FETCH(); |
|
|
|
|
|
|
|
if (id->type == IS_STRING) { |
|
|
|
if (Z_TYPE_P(id) == IS_STRING) { |
|
|
|
numitems = zend_hash_num_elements(&EG(regular_list)); |
|
|
|
for (i=1; i<=numitems; i++) { |
|
|
|
if (zend_hash_index_find(&EG(regular_list), i, (void **) &le)==FAILURE) { |
|
|
|
continue; |
|
|
|
} |
|
|
|
if (le->type == le_db) { |
|
|
|
if (Z_TYPE_P(le) == le_db) { |
|
|
|
info = (dbm_info *)(le->ptr); |
|
|
|
if (!strcmp(info->filename, id->value.str.val)) { |
|
|
|
if (!strcmp(info->filename, Z_STRVAL_P(id))) { |
|
|
|
return (dbm_info *)(le->ptr); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -184,7 +184,7 @@ dbm_info *php_find_dbm(pval *id) |
|
|
|
|
|
|
|
/* didn't find it as a database filename, try as a number */ |
|
|
|
convert_to_long(id); |
|
|
|
info = zend_list_find(id->value.lval, &info_type); |
|
|
|
info = zend_list_find(Z_LVAL_P(id), &info_type); |
|
|
|
if (info_type != le_db) |
|
|
|
return NULL; |
|
|
|
return info; |
|
|
|
@ -257,7 +257,7 @@ PHP_FUNCTION(dbmopen) { |
|
|
|
convert_to_string(filename); |
|
|
|
convert_to_string(mode); |
|
|
|
|
|
|
|
info = php_dbm_open(filename->value.str.val, mode->value.str.val); |
|
|
|
info = php_dbm_open(Z_STRVAL_P(filename), Z_STRVAL_P(mode)); |
|
|
|
if (info) { |
|
|
|
ret = zend_list_insert(info, le_db); |
|
|
|
RETURN_LONG(ret); |
|
|
|
@ -415,7 +415,7 @@ PHP_FUNCTION(dbmclose) { |
|
|
|
} |
|
|
|
convert_to_long(id); |
|
|
|
|
|
|
|
if (zend_list_delete(id->value.lval) == SUCCESS) { |
|
|
|
if (zend_list_delete(Z_LVAL_P(id)) == SUCCESS) { |
|
|
|
RETURN_TRUE; |
|
|
|
} else { |
|
|
|
RETURN_FALSE; |
|
|
|
@ -473,11 +473,11 @@ PHP_FUNCTION(dbminsert) |
|
|
|
|
|
|
|
info = php_find_dbm(id); |
|
|
|
if (!info) { |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", id->value.lval); |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id)); |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
ret = php_dbm_insert(info, key->value.str.val, value->value.str.val); |
|
|
|
ret = php_dbm_insert(info, Z_STRVAL_P(key), Z_STRVAL_P(value)); |
|
|
|
RETURN_LONG(ret); |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
@ -531,11 +531,11 @@ PHP_FUNCTION(dbmreplace) |
|
|
|
|
|
|
|
info = php_find_dbm(id); |
|
|
|
if (!info) { |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", id->value.lval); |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id)); |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
ret = php_dbm_replace(info, key->value.str.val, value->value.str.val); |
|
|
|
ret = php_dbm_replace(info, Z_STRVAL_P(key), Z_STRVAL_P(value)); |
|
|
|
RETURN_LONG(ret); |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
@ -580,6 +580,7 @@ PHP_FUNCTION(dbmfetch) |
|
|
|
{ |
|
|
|
pval *id, *key; |
|
|
|
dbm_info *info; |
|
|
|
char *ret; |
|
|
|
|
|
|
|
if (ZEND_NUM_ARGS()!=2||zend_get_parameters(ht,2,&id,&key)==FAILURE) { |
|
|
|
WRONG_PARAM_COUNT; |
|
|
|
@ -588,14 +589,13 @@ PHP_FUNCTION(dbmfetch) |
|
|
|
|
|
|
|
info = php_find_dbm(id); |
|
|
|
if (!info) { |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", id->value.lval); |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id)); |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
return_value->value.str.val = php_dbm_fetch(info, key->value.str.val); |
|
|
|
if (return_value->value.str.val) { |
|
|
|
return_value->value.str.len = strlen(return_value->value.str.val); |
|
|
|
return_value->type = IS_STRING; |
|
|
|
ret = php_dbm_fetch(info, Z_STRVAL_P(key)); |
|
|
|
if (ret) { |
|
|
|
RETVAL_STRING(ret, 0); |
|
|
|
} else { |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
@ -662,11 +662,11 @@ PHP_FUNCTION(dbmexists) |
|
|
|
|
|
|
|
info = php_find_dbm(id); |
|
|
|
if (!info) { |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", id->value.lval); |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id)); |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
ret = php_dbm_exists(info, key->value.str.val); |
|
|
|
ret = php_dbm_exists(info, Z_STRVAL_P(key)); |
|
|
|
RETURN_LONG(ret); |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
@ -708,11 +708,11 @@ PHP_FUNCTION(dbmdelete) |
|
|
|
|
|
|
|
info = php_find_dbm(id); |
|
|
|
if (!info) { |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", id->value.lval); |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id)); |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
ret = php_dbm_delete(info, key->value.str.val); |
|
|
|
ret = php_dbm_delete(info, Z_STRVAL_P(key)); |
|
|
|
RETURN_LONG(ret); |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
@ -752,7 +752,7 @@ PHP_FUNCTION(dbmfirstkey) |
|
|
|
|
|
|
|
info = php_find_dbm(id); |
|
|
|
if (!info) { |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", id->value.lval); |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id)); |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
@ -760,9 +760,7 @@ PHP_FUNCTION(dbmfirstkey) |
|
|
|
if (!ret) { |
|
|
|
RETURN_FALSE; |
|
|
|
} else { |
|
|
|
return_value->value.str.val = ret; |
|
|
|
return_value->value.str.len = strlen(ret); |
|
|
|
return_value->type = IS_STRING; |
|
|
|
RETVAL_STRING(ret, 0); |
|
|
|
} |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
@ -813,17 +811,15 @@ PHP_FUNCTION(dbmnextkey) |
|
|
|
|
|
|
|
info = php_find_dbm(id); |
|
|
|
if (!info) { |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", id->value.lval); |
|
|
|
php_error(E_WARNING, "not a valid database identifier %d", Z_LVAL_P(id)); |
|
|
|
RETURN_FALSE; |
|
|
|
} |
|
|
|
|
|
|
|
ret = php_dbm_nextkey(info, key->value.str.val); |
|
|
|
ret = php_dbm_nextkey(info, Z_STRVAL_P(key)); |
|
|
|
if (!ret) { |
|
|
|
RETURN_FALSE; |
|
|
|
} else { |
|
|
|
return_value->value.str.val = ret; |
|
|
|
return_value->value.str.len = strlen(ret); |
|
|
|
return_value->type = IS_STRING; |
|
|
|
RETVAL_STRING(ret, 0); |
|
|
|
} |
|
|
|
} |
|
|
|
/* }}} */ |
|
|
|
|