mike            Sat Oct 28 08:48:00 2006 UTC

  Modified files:              
    /php-src/ext/sysvsem        php_sysvsem.h sysvsem.c 
    /php-src/ext/sysvsem/tests  sysv.phpt 
  Log:
  - upgrade to current parameter parsing API
  - mark functions unicode safe
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvsem/php_sysvsem.h?r1=1.17&r2=1.18&diff_format=u
Index: php-src/ext/sysvsem/php_sysvsem.h
diff -u php-src/ext/sysvsem/php_sysvsem.h:1.17 
php-src/ext/sysvsem/php_sysvsem.h:1.18
--- php-src/ext/sysvsem/php_sysvsem.h:1.17      Sun Jan  1 13:09:56 2006
+++ php-src/ext/sysvsem/php_sysvsem.h   Sat Oct 28 08:48:00 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_sysvsem.h,v 1.17 2006/01/01 13:09:56 sniper Exp $ */
+/* $Id: php_sysvsem.h,v 1.18 2006/10/28 08:48:00 mike Exp $ */
 
 #ifndef PHP_SYSVSEM_H
 #define PHP_SYSVSEM_H
@@ -26,6 +26,8 @@
 extern zend_module_entry sysvsem_module_entry;
 #define sysvsem_module_ptr &sysvsem_module_entry
 
+#define PHP_SEM_RSRC_NAME "sysvsem"
+
 PHP_MINIT_FUNCTION(sysvsem);
 PHP_FUNCTION(sem_get);
 PHP_FUNCTION(sem_acquire);
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvsem/sysvsem.c?r1=1.54&r2=1.55&diff_format=u
Index: php-src/ext/sysvsem/sysvsem.c
diff -u php-src/ext/sysvsem/sysvsem.c:1.54 php-src/ext/sysvsem/sysvsem.c:1.55
--- php-src/ext/sysvsem/sysvsem.c:1.54  Sun Jan  1 13:09:56 2006
+++ php-src/ext/sysvsem/sysvsem.c       Sat Oct 28 08:48:00 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
  */
  
-/* $Id: sysvsem.c,v 1.54 2006/01/01 13:09:56 sniper Exp $ */
+/* $Id: sysvsem.c,v 1.55 2006/10/28 08:48:00 mike Exp $ */
 
 /* Latest update build anc tested on Linux 2.2.14
  *
@@ -90,6 +90,8 @@
 
 THREAD_LS sysvsem_module php_sysvsem_module;
 
+#define SEM_FETCH_RESOURCE(sem_ptr, z_ptr) ZEND_FETCH_RESOURCE(sem_ptr, 
sysvsem_sem *, &z_ptr, -1, PHP_SEM_RSRC_NAME, php_sysvsem_module.le_sem)
+
 /* Semaphore functions using System V semaphores.  Each semaphore
  * actually consists of three semaphores allocated as a unit under the
  * same key.  Semaphore 0 (SYSVSEM_SEM) is the actual semaphore, it is
@@ -154,7 +156,7 @@
  */
 PHP_MINIT_FUNCTION(sysvsem)
 {
-       php_sysvsem_module.le_sem = 
zend_register_list_destructors_ex(release_sysvsem_sem, NULL, "sysvsem", 
module_number);
+       php_sysvsem_module.le_sem = 
zend_register_list_destructors_ex(release_sysvsem_sem, NULL, PHP_SEM_RSRC_NAME, 
module_number);
        return SUCCESS;
 }
 /* }}} */
@@ -165,7 +167,7 @@
 #undef SETVAL_WANTS_PTR
 #endif
 
-/* {{{ proto resource sem_get(int key [, int max_acquire [, int perm [, int 
auto_release]])
+/* {{{ proto resource sem_get(int key [, int max_acquire [, int perm [, int 
auto_release]]) U
    Return an id for the semaphore with the given key, and allow max_acquire 
(default 1) processes to acquire it simultaneously */
 PHP_FUNCTION(sem_get)
 {
@@ -279,25 +281,17 @@
  */
 static void php_sysvsem_semop(INTERNAL_FUNCTION_PARAMETERS, int acquire)
 {
-       zval **arg_id;
+       zval *arg_id;
        sysvsem_sem *sem_ptr;
        struct sembuf sop;
 
-       switch(ZEND_NUM_ARGS()) {
-               case 1:
-                       if (zend_get_parameters_ex(1, &arg_id)==FAILURE) {
-                               RETURN_FALSE;
-                       }
-                       break;
-               default:
-                       WRONG_PARAM_COUNT;
-                       break;
+       if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", 
&arg_id)) {
+               RETURN_FALSE;
        }
-
-       ZEND_FETCH_RESOURCE(sem_ptr, sysvsem_sem *, arg_id, -1, "SysV 
semaphore", php_sysvsem_module.le_sem);
+       SEM_FETCH_RESOURCE(sem_ptr, arg_id);
 
        if (!acquire && sem_ptr->count == 0) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "SysV semaphore %ld 
(key 0x%x) is not currently acquired", Z_LVAL_PP(arg_id), sem_ptr->key);
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "SysV semaphore %ld 
(key 0x%x) is not currently acquired", Z_LVAL_P(arg_id), sem_ptr->key);
                RETURN_FALSE;
        }
 
@@ -317,7 +311,7 @@
 }
 /* }}} */
 
-/* {{{ proto bool sem_acquire(resource id)
+/* {{{ proto bool sem_acquire(resource id) U
    Acquires the semaphore with the given id, blocking if necessary */
 PHP_FUNCTION(sem_acquire)
 {
@@ -325,7 +319,7 @@
 }
 /* }}} */
 
-/* {{{ proto bool sem_release(resource id)
+/* {{{ proto bool sem_release(resource id) U
    Releases the semaphore with the given id */
 PHP_FUNCTION(sem_release)
 {
@@ -333,7 +327,7 @@
 }
 /* }}} */
 
-/* {{{ proto bool sem_remove(resource id)
+/* {{{ proto bool sem_remove(resource id) U
    Removes semaphore from Unix systems */
 
 /*
@@ -343,18 +337,17 @@
 
 PHP_FUNCTION(sem_remove)
 {
-       zval **arg_id;
+       zval *arg_id;
        sysvsem_sem *sem_ptr;
 #if HAVE_SEMUN
        union semun un;
        struct semid_ds buf;
 #endif
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg_id) == 
FAILURE) {
-                       WRONG_PARAM_COUNT;
+       if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", 
&arg_id)) {
+               RETURN_FALSE
        }
-
-       ZEND_FETCH_RESOURCE(sem_ptr, sysvsem_sem *, arg_id, -1, "SysV 
semaphore", php_sysvsem_module.le_sem);
+       SEM_FETCH_RESOURCE(sem_ptr, arg_id);
 
 #if HAVE_SEMUN
        un.buf = &buf;
@@ -362,7 +355,7 @@
 #else
        if (semctl(sem_ptr->semid, 0, IPC_STAT, NULL) < 0) {
 #endif
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "SysV semaphore %ld 
does not (any longer) exist", Z_LVAL_PP(arg_id));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "SysV semaphore %ld 
does not (any longer) exist", Z_LVAL_P(arg_id));
                RETURN_FALSE;
        }
 
@@ -371,7 +364,7 @@
 #else
        if (semctl(sem_ptr->semid, 0, IPC_RMID, NULL) < 0) {
 #endif
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for SysV 
sempphore %ld: %s", Z_LVAL_PP(arg_id), strerror(errno));
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "failed for SysV 
semaphore %ld: %s", Z_LVAL_P(arg_id), strerror(errno));
                RETURN_FALSE;
        }
        
http://cvs.php.net/viewvc.cgi/php-src/ext/sysvsem/tests/sysv.phpt?r1=1.3&r2=1.4&diff_format=u
Index: php-src/ext/sysvsem/tests/sysv.phpt
diff -u php-src/ext/sysvsem/tests/sysv.phpt:1.3 
php-src/ext/sysvsem/tests/sysv.phpt:1.4
--- php-src/ext/sysvsem/tests/sysv.phpt:1.3     Fri Oct 27 01:08:16 2006
+++ php-src/ext/sysvsem/tests/sysv.phpt Sat Oct 28 08:48:00 2006
@@ -101,7 +101,7 @@
 Start.
 Got semaphore Resource id #%i.
 Success aquire semaphore Resource id #%i.
-Success to attach shared memory : %i.
+Success to attach shared memory : Resource id #%i.
 Write var1 to shared memory.
 Write var2 to shared memory.
 Read var1=Variable 1.

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to