]> granicus.if.org Git - php/commitdiff
Update to use reference-serializer too
authorStanislav Malyshev <stas@php.net>
Mon, 30 Oct 2000 17:18:39 +0000 (17:18 +0000)
committerStanislav Malyshev <stas@php.net>
Mon, 30 Oct 2000 17:18:39 +0000 (17:18 +0000)
ext/sysvshm/sysvshm.c

index 6986a29295923a1d3262f3355103806b447accad..c28082760ed37dce8f24454fb02fa345a61778d6 100644 (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);
 }
 /* }}} */