Update to use reference-serializer too

This commit is contained in:
Stanislav Malyshev 2000-10-30 17:18:39 +00:00
parent c31faf0bd9
commit fad7092ff8

View File

@ -212,6 +212,7 @@ PHP_FUNCTION(shm_put_var)
int type;
pval shm_var;
int ret;
php_serialize_data_t var_hash;
if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &arg_id, &arg_key,&arg_var) == FAILURE) {
WRONG_PARAM_COUNT;
@ -233,7 +234,9 @@ PHP_FUNCTION(shm_put_var)
shm_var.type=IS_STRING;
shm_var.value.str.len=0;
shm_var.value.str.val=0;
php_var_serialize(&shm_var,arg_var,NULL);
PHP_VAR_SERIALIZE_INIT(var_hash);
php_var_serialize(&shm_var,arg_var,&var_hash);
PHP_VAR_SERIALIZE_DESTROY(var_hash);
/* insert serialized variable into shared memory */
ret=php_put_shm_data(shm_list_ptr->ptr,key,shm_var.value.str.val,shm_var.value.str.len);
@ -260,6 +263,7 @@ PHP_FUNCTION(shm_get_var)
char *shm_data;
long shm_varpos;
sysvshm_chunk *shm_var;
php_serialize_data_t var_hash;
if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg_id, &arg_key) == FAILURE) {
WRONG_PARAM_COUNT;
@ -287,10 +291,13 @@ PHP_FUNCTION(shm_get_var)
shm_var=(sysvshm_chunk*)((char*)shm_list_ptr->ptr+shm_varpos);
shm_data=&shm_var->mem;
if(php_var_unserialize(&return_value, (const char **) &shm_data, shm_data+shm_var->length)!=1) {
PHP_VAR_UNSERIALIZE_INIT(var_hash);
if(php_var_unserialize(&return_value, (const char **) &shm_data, shm_data+shm_var->length,&var_hash)!=1) {
PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
php_error(E_WARNING, "variable data in shared memory is corruped");
RETURN_FALSE;
}
PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
}
/* }}} */