diff options
author | Xinchen Hui <laruence@gmail.com> | 2015-02-02 13:23:16 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@gmail.com> | 2015-02-02 13:23:16 +0800 |
commit | 942809909e1bc125db038796c0a1a0b53eeaca7d (patch) | |
tree | bddec8b44878488fc73e8fe2fb9e30b7ee4f9b67 /ext/sysvsem | |
parent | c9e44dc2dfa7ad91fe9253378a49e9f5b057992e (diff) | |
download | php-git-942809909e1bc125db038796c0a1a0b53eeaca7d.tar.gz |
Cleanup resource handling APIs
Diffstat (limited to 'ext/sysvsem')
-rw-r--r-- | ext/sysvsem/sysvsem.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/ext/sysvsem/sysvsem.c b/ext/sysvsem/sysvsem.c index f23067bc95..647d59191c 100644 --- a/ext/sysvsem/sysvsem.c +++ b/ext/sysvsem/sysvsem.c @@ -290,7 +290,7 @@ PHP_FUNCTION(sem_get) sem_ptr->count = 0; sem_ptr->auto_release = auto_release; - ZEND_REGISTER_RESOURCE(return_value, sem_ptr, php_sysvsem_module.le_sem); + RETVAL_RES(zend_register_resource(sem_ptr, php_sysvsem_module.le_sem)); sem_ptr->id = Z_RES_HANDLE_P(return_value); } /* }}} */ @@ -314,7 +314,9 @@ static void php_sysvsem_semop(INTERNAL_FUNCTION_PARAMETERS, int acquire) } } - ZEND_FETCH_RESOURCE(sem_ptr, sysvsem_sem *, arg_id, -1, "SysV semaphore", php_sysvsem_module.le_sem); + if ((sem_ptr = (sysvsem_sem *)zend_fetch_resource(Z_RES_P(arg_id), "SysV semaphore", php_sysvsem_module.le_sem)) == NULL) { + RETURN_FALSE; + } if (!acquire && sem_ptr->count == 0) { php_error_docref(NULL, E_WARNING, "SysV semaphore %ld (key 0x%x) is not currently acquired", Z_LVAL_P(arg_id), sem_ptr->key); @@ -376,7 +378,9 @@ PHP_FUNCTION(sem_remove) return; } - ZEND_FETCH_RESOURCE(sem_ptr, sysvsem_sem *, arg_id, -1, "SysV semaphore", php_sysvsem_module.le_sem); + if ((sem_ptr = (sysvsem_sem *)zend_fetch_resource(Z_RES_P(arg_id), "SysV semaphore", php_sysvsem_module.le_sem)) == NULL) { + RETURN_FALSE; + } #if HAVE_SEMUN un.buf = &buf; |