Skip to content

Commit 6154fac

Browse files
committed
ext/sysvshm: refactor php_put_shm_data()
1 parent 4844c7a commit 6154fac

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

ext/sysvshm/sysvshm.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ ZEND_GET_MODULE(sysvshm)
9090
/* TODO: Make this thread-safe. */
9191
sysvshm_module php_sysvshm;
9292

93-
static int php_put_shm_data(sysvshm_chunk_head *ptr, zend_long key, const char *data, zend_long len);
93+
static bool php_put_shm_data(sysvshm_chunk_head *ptr, zend_long key, const zend_string *data);
9494
static zend_long php_check_shm_data(sysvshm_chunk_head *ptr, zend_long key);
9595
static void php_remove_shm_data(sysvshm_chunk_head *ptr, zend_long shm_varpos);
9696

@@ -235,7 +235,6 @@ PHP_FUNCTION(shm_remove)
235235
PHP_FUNCTION(shm_put_var)
236236
{
237237
zval *shm_id, *arg_var;
238-
int ret;
239238
zend_long shm_key;
240239
sysvshm_shm *shm_list_ptr;
241240
smart_str shm_var = {0};
@@ -262,13 +261,15 @@ PHP_FUNCTION(shm_put_var)
262261
RETURN_THROWS();
263262
}
264263

264+
ZEND_ASSERT(shm_var.s != NULL);
265+
265266
/* insert serialized variable into shared memory */
266-
ret = php_put_shm_data(shm_list_ptr->ptr, shm_key, shm_var.s? ZSTR_VAL(shm_var.s) : NULL, shm_var.s? ZSTR_LEN(shm_var.s) : 0);
267+
bool ret = php_put_shm_data(shm_list_ptr->ptr, shm_key, shm_var.s);
267268

268269
/* free string */
269270
smart_str_free(&shm_var);
270271

271-
if (ret == -1) {
272+
if (!ret) {
272273
php_error_docref(NULL, E_WARNING, "Not enough shared memory left");
273274
RETURN_FALSE;
274275
}
@@ -366,32 +367,31 @@ PHP_FUNCTION(shm_remove_var)
366367
}
367368
/* }}} */
368369

369-
/* {{{ php_put_shm_data
370+
/* {{{
370371
* inserts an ascii-string into shared memory */
371-
static int php_put_shm_data(sysvshm_chunk_head *ptr, zend_long key, const char *data, zend_long len)
372+
static bool php_put_shm_data(sysvshm_chunk_head *ptr, zend_long key, const zend_string *data)
372373
{
373374
sysvshm_chunk *shm_var;
374-
zend_long total_size;
375375
zend_long shm_varpos;
376376

377-
total_size = ((zend_long) (len + sizeof(sysvshm_chunk) - 1) / sizeof(zend_long)) * sizeof(zend_long) + sizeof(zend_long); /* zend_long alligment */
377+
size_t total_size = ((zend_long) (ZSTR_LEN(data) + sizeof(sysvshm_chunk) - 1) / sizeof(zend_long)) * sizeof(zend_long) + sizeof(zend_long); /* zend_long alligment */
378378

379379
if ((shm_varpos = php_check_shm_data(ptr, key)) > 0) {
380380
php_remove_shm_data(ptr, shm_varpos);
381381
}
382382

383383
if (ptr->free < total_size) {
384-
return -1; /* not enough memory */
384+
return false; /* not enough memory */
385385
}
386386

387387
shm_var = (sysvshm_chunk *) ((char *) ptr + ptr->end);
388388
shm_var->key = key;
389-
shm_var->length = len;
389+
shm_var->length = ZSTR_LEN(data);
390390
shm_var->next = total_size;
391-
memcpy(&(shm_var->mem), data, len);
391+
memcpy(&(shm_var->mem), ZSTR_VAL(data), ZSTR_LEN(data));
392392
ptr->end += total_size;
393393
ptr->free -= total_size;
394-
return 0;
394+
return true;
395395
}
396396
/* }}} */
397397

0 commit comments

Comments
 (0)