]> granicus.if.org Git - php/commitdiff
Use new Zend API and some minor cleanup.
authorSascha Schumann <sas@php.net>
Fri, 24 Sep 1999 19:15:17 +0000 (19:15 +0000)
committerSascha Schumann <sas@php.net>
Fri, 24 Sep 1999 19:15:17 +0000 (19:15 +0000)
ChangeLog
ext/gettext/gettext.c
ext/sysvsem/sysvsem.c
ext/sysvshm/php3_sysvshm.h
ext/sysvshm/sysvshm.c

index 778a0d758ea98b1da4b316d1b1e74558098c40b5..898f5a18a29338879fe43169c02353ddc8a4e154 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@ PHP 4.0 CHANGE LOG                                                    ChangeLog
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 
 ?? ?? 1999, Version 4.0 Beta 3
+- Updated session, dba, mhash, mcrypt, sysvshm, sysvsem, gettext modules to use
+  the new high-performance Zend function API (Sascha)
 - Extended var_dump to handle resource type somewhat (Andrey)
 - Updated WDDX to use the new high-performance Zend function API (Andrey)
 - Updated XML to use the new high-performance Zend function API. (Thies)
index 6eb422daf1f69b632ebaa90589e46f158d96295d..25679d3fe49863383f7b7a5cdf92f1b26a3e2166 100644 (file)
@@ -47,18 +47,18 @@ PHP_MINFO_FUNCTION(gettext)
 
 PHP_FUNCTION(textdomain)
 {
-    pval *domain;
+    pval **domain;
     char *domain_name, *retval;
+       char *val;
 
-    if (ARG_COUNT(ht) != 1 || getParameters(ht, 1, &domain) == FAILURE) {
+    if (ARG_COUNT(ht) != 1 || getParametersEx(1, &domain) == FAILURE) {
                WRONG_PARAM_COUNT;
     }
-    convert_to_string(domain);
+    convert_to_string_ex(domain);
 
-       if (strcmp(domain->value.str.val, "")
-               && strcmp(domain->value.str.val, "0"))
-       {
-               domain_name = domain->value.str.val;
+       val = (*domain)->value.str.val;
+       if (strcmp(val, "") && strcmp(val, "0")) {
+               domain_name = val;
        } else {
                domain_name = NULL;
        }
@@ -70,80 +70,80 @@ PHP_FUNCTION(textdomain)
 
 PHP_FUNCTION(gettext)
 {
-    pval *msgid;
+    pval **msgid;
     char *msgstr;
 
-    if (ARG_COUNT(ht) != 1 || getParameters(ht, 1, &msgid) == FAILURE) {
+    if (ARG_COUNT(ht) != 1 || getParametersEx(1, &msgid) == FAILURE) {
                WRONG_PARAM_COUNT;
     }
-    convert_to_string(msgid);
+    convert_to_string_ex(msgid);
 
-    msgstr = gettext(msgid->value.str.val);
+    msgstr = gettext((*msgid)->value.str.val);
 
     RETURN_STRING(msgstr, 1);
 }
 
 PHP_FUNCTION(dgettext)
 {
-       pval *domain_name, *msgid;
+       pval **domain_name, **msgid;
        char *msgstr;
 
        if (ARG_COUNT(ht) != 2
-               || getParameters(ht, 2, &domain_name, &msgid) == FAILURE)
+               || getParametersEx(2, &domain_name, &msgid) == FAILURE)
        {
                WRONG_PARAM_COUNT;
        }
-       convert_to_string(domain_name);
-       convert_to_string(msgid);
+       convert_to_string_ex(domain_name);
+       convert_to_string_ex(msgid);
 
-       msgstr = dgettext(domain_name->value.str.val, msgid->value.str.val);
+       msgstr = dgettext((*domain_name)->value.str.val, (*msgid)->value.str.val);
 
        RETURN_STRING(msgstr, 1);
 }
 
 PHP_FUNCTION(dcgettext)
 {
-       pval *domain_name, *msgid, *category;
+       pval **domain_name, **msgid, **category;
        char *msgstr;
 
        if (ARG_COUNT(ht) != 3
-               || getParameters(ht, 3, &domain_name, &msgid, &category) == FAILURE)
+               || getParametersEx(3, &domain_name, &msgid, &category) == FAILURE)
        {
                WRONG_PARAM_COUNT;
        }
-       convert_to_string(domain_name);
-       convert_to_string(msgid);
-       convert_to_long(category);
+       convert_to_string_ex(domain_name);
+       convert_to_string_ex(msgid);
+       convert_to_long_ex(category);
 
-       msgstr = dcgettext(domain_name->value.str.val,
-                                          msgid->value.str.val,
-                                          category->value.lval);
+       msgstr = dcgettext((*domain_name)->value.str.val,
+                                          (*msgid)->value.str.val,
+                                          (*category)->value.lval);
 
        RETURN_STRING(msgstr, 1);
 }
 
 PHP_FUNCTION(bindtextdomain)
 {
-       pval *domain_name, *dir;
+       pval **domain_name, **dir;
        char *retval, *dir_name;
+       char *val;
 
        if (ARG_COUNT(ht) != 2
-               || getParameters(ht, 2, &domain_name, &dir) == FAILURE)
+               || getParametersEx(2, &domain_name, &dir) == FAILURE)
        {
                WRONG_PARAM_COUNT;
        }
-       convert_to_string(domain_name);
-       convert_to_string(dir);
+       convert_to_string_ex(domain_name);
+       convert_to_string_ex(dir);
 
-       if (strcmp(dir->value.str.val, "")
-               && strcmp(dir->value.str.val, "0"))
-       {
-               dir_name = dir->value.str.val;
+       val = (*dir)->value.str.val;
+       if (strcmp(val, "") && strcmp(val, "0")) {
+               dir_name = val;
        } else {
                dir_name = NULL;
        }
 
-       retval = bindtextdomain(domain_name->value.str.val, dir_name);
+       retval = bindtextdomain((*domain_name)->value.str.val, dir_name);
 
        RETURN_STRING(retval, 1);
 }
index a15bf6bcdb4f8b8169c838a5c2084b4d4c040fe4..b4f69ba5010d9ae6f895a283c68ab62ff534625b 100644 (file)
@@ -131,7 +131,7 @@ int php3_minit_sysvsem(INIT_FUNC_ARGS)
    Return an id for the semaphore with the given key, and allow max_acquire (default 1) processes to acquire it simultaneously. */
 PHP_FUNCTION(sysvsem_get)
 {
-       pval *arg_key, *arg_max_acquire, *arg_perm;
+       pval **arg_key, **arg_max_acquire, **arg_perm;
        int key, max_acquire, perm;
     int semid;
        struct sembuf sop[3];
@@ -146,31 +146,31 @@ PHP_FUNCTION(sysvsem_get)
 
        switch (ARG_COUNT(ht)) {
                case 1:
-                       if (getParameters(ht, 1, &arg_key)==FAILURE) {
+                       if (getParametersEx(1, &arg_key)==FAILURE) {
                                RETURN_FALSE;
                        }
-                       convert_to_long(arg_key);
-                       key = (int)arg_key->value.lval;
+                       convert_to_long_ex(arg_key);
+                       key = (int)(*arg_key)->value.lval;
                        break;
                case 2:
-                       if (getParameters(ht, 2, &arg_key, &arg_max_acquire)==FAILURE) {
+                       if (getParametersEx(2, &arg_key, &arg_max_acquire)==FAILURE) {
                                RETURN_FALSE;
                        }
-                       convert_to_long(arg_key);
-                       key = (int)arg_key->value.lval;
-                       convert_to_long(arg_max_acquire);
-                       max_acquire = (int)arg_max_acquire->value.lval;
+                       convert_to_long_ex(arg_key);
+                       key = (int)(*arg_key)->value.lval;
+                       convert_to_long_ex(arg_max_acquire);
+                       max_acquire = (int)(*arg_max_acquire)->value.lval;
                        break;
                case 3:
-                       if (getParameters(ht, 3, &arg_key, &arg_max_acquire, &arg_perm)==FAILURE) {
+                       if (getParametersEx(3, &arg_key, &arg_max_acquire, &arg_perm)==FAILURE) {
                                RETURN_FALSE;
                        }
-                       convert_to_long(arg_key);
-                       key = (int)arg_key->value.lval;
-                       convert_to_long(arg_max_acquire);
-                       max_acquire = (int)arg_max_acquire->value.lval;
-                       convert_to_long(arg_perm);
-                       perm = (int)arg_perm->value.lval;
+                       convert_to_long_ex(arg_key);
+                       convert_to_long_ex(arg_max_acquire);
+                       convert_to_long_ex(arg_perm);
+                       key = (int)(*arg_key)->value.lval;
+                       max_acquire = (int)(*arg_max_acquire)->value.lval;
+                       perm = (int)(*arg_perm)->value.lval;
                        break;
                default:
                        WRONG_PARAM_COUNT;
@@ -281,18 +281,18 @@ PHP_FUNCTION(sysvsem_get)
 
 static void _php3_sysvsem_semop(INTERNAL_FUNCTION_PARAMETERS, int acquire)
 {
-       pval *arg_id;
+       pval **arg_id;
        int id, type;
        sysvsem_sem *sem_ptr;
     struct sembuf sop;
 
        switch(ARG_COUNT(ht)) {
                case 1:
-                       if (getParameters(ht, 1, &arg_id)==FAILURE) {
+                       if (getParametersEx(1, &arg_id)==FAILURE) {
                                RETURN_FALSE;
                        }
-                       convert_to_long(arg_id);
-                       id = (int)arg_id->value.lval;
+                       convert_to_long_ex(arg_id);
+                       id = (int)(*arg_id)->value.lval;
                        break;
                default:
                        WRONG_PARAM_COUNT;
index 53f9492a6cf40538a16e88649197de47dfadfe2c..bd7538b5773a2f6087678c1625ad2927561a13af 100644 (file)
@@ -79,13 +79,13 @@ typedef struct {
 
 
 
-extern int php3_minit_sysvshm(INIT_FUNC_ARGS);
-PHP_FUNCTION(sysvshm_attach);
-PHP_FUNCTION(sysvshm_detach);
-PHP_FUNCTION(sysvshm_remove);
-PHP_FUNCTION(sysvshm_put_var);
-PHP_FUNCTION(sysvshm_get_var);
-PHP_FUNCTION(sysvshm_remove_var);
+PHP_MINIT_FUNCTION(sysvshm);
+PHP_FUNCTION(shm_attach);
+PHP_FUNCTION(shm_detach);
+PHP_FUNCTION(shm_remove);
+PHP_FUNCTION(shm_put_var);
+PHP_FUNCTION(shm_get_var);
+PHP_FUNCTION(shm_remove_var);
 extern int php3int_put_shmdata(sysvshm_chunk_head *ptr,long key,char *data, long len);
 extern long php3int_check_shmdata(sysvshm_chunk_head *ptr, long key);
 extern int php3int_remove_shmdata(sysvshm_chunk_head *ptr, long shm_varpos);
index 755edfb75de9507b1ed4b290809bc7575cc1d89d..8d5698eb173eb68ff18c87d4bbd7f64b8a701f56 100644 (file)
 #include "../standard/php3_var.h"
 
 function_entry sysvshm_functions[] = {
-       {"shm_attach",                  php3_sysvshm_attach,            NULL},
-       {"shm_detach",                  php3_sysvshm_detach,            NULL},
-       {"shm_remove",                  php3_sysvshm_remove,            NULL},
-       {"shm_put_var",                 php3_sysvshm_put_var,           NULL},
-       {"shm_get_var",                 php3_sysvshm_get_var,           NULL},
-       {"shm_remove_var",              php3_sysvshm_remove_var,        NULL},
-       {NULL, NULL, NULL}
+       PHP_FE(shm_attach, NULL)
+       PHP_FE(shm_remove, NULL)
+       PHP_FE(shm_detach, NULL)
+       PHP_FE(shm_put_var, NULL)
+       PHP_FE(shm_get_var, NULL)
+       PHP_FE(shm_remove_var, NULL)
+       {0}
 };
 
-php3_module_entry sysvshm_module_entry = {
-       "System V Shared-Memory", sysvshm_functions, php3_minit_sysvshm, NULL, NULL, NULL, NULL, STANDARD_MODULE_PROPERTIES
+zend_module_entry sysvshm_module_entry = {
+       "System V Shared-Memory", sysvshm_functions, 
+       PHP_MINIT(sysvshm), NULL,
+       NULL, NULL,
+       NULL,
+       STANDARD_MODULE_PROPERTIES
 };
 
 
@@ -59,8 +63,7 @@ static void php3i_release_sysvshm(sysvshm_shm *shm_ptr)
        efree(shm_ptr);
 }
 
-
-int php3_minit_sysvshm(INIT_FUNC_ARGS)
+PHP_MINIT_FUNCTION(sysvshm)
 {    
        php3_sysvshm_module.le_shm = register_list_destructors(php3i_release_sysvshm, NULL);
        if (cfg_get_long("sysvshm.init_mem",
@@ -73,52 +76,35 @@ int php3_minit_sysvshm(INIT_FUNC_ARGS)
 
 /* {{{ proto int shm_attach(int key, int size, int flag)
    Return an id for the shared memory with the given key. */
-PHP_FUNCTION(sysvshm_attach)
+PHP_FUNCTION(shm_attach)
 {
-       pval *arg_key,*arg_size,*arg_flag;
+       pval **arg_key,**arg_size,**arg_flag;
        long shm_size,shm_flag;
        sysvshm_shm *shm_list_ptr;
        char *shm_ptr;
        sysvshm_chunk_head *chunk_ptr;
        key_t shm_key;
        long shm_id,list_id;
+       int ac = ARG_COUNT(ht);
 
        shm_flag = 0666;
        shm_size = php3_sysvshm_module.init_mem;
        
-       switch (ARG_COUNT(ht)) {
-               case 1:
-                       if (getParameters(ht, 1, &arg_key)==FAILURE) {
-                               RETURN_FALSE;
-                       }
-                       convert_to_long(arg_key);
-                       shm_key = arg_key->value.lval;
-                       break;
-               case 2:
-                       if (getParameters(ht, 2, &arg_key, &arg_size)==FAILURE) {
-                               RETURN_FALSE;
-                       }
-                       convert_to_long(arg_key);
-                       shm_key = arg_key->value.lval;
-                       convert_to_long(arg_size);
-                       shm_size=arg_size->value.lval;
-                       break;
-               case 3:
-                       if (getParameters(ht, 3, &arg_key, &arg_size, &arg_flag)==FAILURE) {
-                               RETURN_FALSE;
-                       }
-                       convert_to_long(arg_key);
-                       shm_key = arg_key->value.lval;
-                       convert_to_long(arg_size);
-                       shm_size=arg_size->value.lval;
-                       convert_to_long(arg_flag);
-                       shm_flag = arg_flag->value.lval;
-                       break;
-               default:
-                       WRONG_PARAM_COUNT;
-                       break;
+       if(ac < 1 || ac > 3 || getParametersEx(ac, &arg_key, &arg_size, &arg_flag) == FAILURE) {
+               WRONG_PARAM_COUNT;
        }
 
+       switch (ac) {
+               case 3:
+                       convert_to_long_ex(arg_flag);
+                       shm_flag = (*arg_flag)->value.lval;
+               case 2:
+                       convert_to_long_ex(arg_size);
+                       shm_size= (*arg_size)->value.lval;
+               case 1:
+                       convert_to_long_ex(arg_key);
+                       shm_key = (*arg_key)->value.lval;
+       }
 
        if((shm_list_ptr = (sysvshm_shm *) emalloc(sizeof(sysvshm_shm)))==NULL) {
                php_error(E_WARNING, "shm_attach() failed for key 0x%x: cannot allocate internal listelement", shm_key);
@@ -153,7 +139,7 @@ PHP_FUNCTION(sysvshm_attach)
        }
 
 
-       shm_list_ptr->key   = shm_key;
+       shm_list_ptr->key = shm_key;
        shm_list_ptr->id = shm_id;
        shm_list_ptr->ptr = chunk_ptr;
        list_id = php3_list_insert(shm_list_ptr, php3_sysvshm_module.le_shm);
@@ -165,49 +151,40 @@ PHP_FUNCTION(sysvshm_attach)
 
 /* {{{ proto int shm_detach(int id)
    releases the shared memory attachment with the given id. */
-PHP_FUNCTION(sysvshm_detach)
+PHP_FUNCTION(shm_detach)
 {
-       pval *arg_id;
+       pval **arg_id;
        long id;
 
-       switch (ARG_COUNT(ht)) {
-               case 1:
-                       if (getParameters(ht, 1, &arg_id)==FAILURE) {
-                               RETURN_FALSE;
-                       }
-                       convert_to_long(arg_id);
-                       id = arg_id->value.lval;
-                       break;
-               default:
-                       WRONG_PARAM_COUNT;
-                       break;
+       if(ARG_COUNT(ht) != 1 || getParametersEx(1, &arg_id) == FAILURE) {
+               WRONG_PARAM_COUNT;
        }
 
+       convert_to_long_ex(arg_id);
+       
+       id = (*arg_id)->value.lval;
+
        php3_list_delete(id);
+
+       RETURN_TRUE;
 }
 /* }}} */
 /* {{{ proto int shm_remove(int key)
    removes the shared memory with the given key. */
-PHP_FUNCTION(sysvshm_remove)
+PHP_FUNCTION(shm_remove)
 {
-       pval *arg_key;
+       pval **arg_key;
        long id;
        key_t key;
 
-
-       switch (ARG_COUNT(ht)) {
-               case 1:
-                       if (getParameters(ht, 1, &arg_key)==FAILURE) {
-                               RETURN_FALSE;
-                       }
-                       convert_to_long(arg_key);
-                       key = arg_key->value.lval;
-                       break;
-               default:
-                       WRONG_PARAM_COUNT;
-                       break;
+       if(ARG_COUNT(ht) != 1 || getParametersEx(1, &arg_key) == FAILURE) {
+               WRONG_PARAM_COUNT;
        }
 
+       convert_to_long_ex(arg_key);
+       
+       key = (*arg_key)->value.lval;
+
        if((id=shmget(key,0,0))<0) {
                php_error(E_WARNING, "%d is not a existing SysV shared memory key", key);
                RETURN_FALSE;
@@ -225,29 +202,23 @@ PHP_FUNCTION(sysvshm_remove)
 
 /* {{{ proto int shm_put(int id, int key, object *variable)
    insert a variable into shared memory. */
-PHP_FUNCTION(sysvshm_put_var)
+PHP_FUNCTION(shm_put_var)
 {
-       pval *arg_id, *arg_key, *arg_var;
+       pval **arg_id, **arg_key, **arg_var;
        long key, id;
        sysvshm_shm *shm_list_ptr;
        int type;
        pval shm_var;
        int ret;        
 
-       switch (ARG_COUNT(ht)) {
-               case 3:
-                       if (getParameters(ht, 3, &arg_id, &arg_key,&arg_var)==FAILURE) {
-                               RETURN_FALSE;
-                       }
-                       convert_to_long(arg_id);
-                       id = arg_id->value.lval;
-                       convert_to_long(arg_key);
-                       key = arg_key->value.lval;
-                       break;
-               default:
-                       WRONG_PARAM_COUNT;
-                       break;
+       if(ARG_COUNT(ht) != 3 || getParametersEx(3, &arg_id, &arg_key,&arg_var) == FAILURE) {
+               WRONG_PARAM_COUNT;
        }
+                       
+       convert_to_long_ex(arg_id);
+       id = (*arg_id)->value.lval;
+       convert_to_long_ex(arg_key);
+       key = (*arg_key)->value.lval;
 
        shm_list_ptr = (sysvshm_shm *) php3_list_find(id, &type);
        if (type!=php3_sysvshm_module.le_shm) {
@@ -260,7 +231,7 @@ PHP_FUNCTION(sysvshm_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);
+       php_var_serialize(&shm_var,arg_var);
        /* insert serialized variable into shared memory */
        ret=php3int_put_shmdata(shm_list_ptr->ptr,key,shm_var.value.str.val,shm_var.value.str.len);
 
@@ -280,9 +251,9 @@ PHP_FUNCTION(sysvshm_put_var)
 
 /* {{{ proto string/float/int/array shm_get_var(int id, int key)
    returns a variable into shared memory. */
-PHP_FUNCTION(sysvshm_get_var)
+PHP_FUNCTION(shm_get_var)
 {
-       pval *arg_id, *arg_key;
+       pval **arg_id, **arg_key;
        long key, id;
        sysvshm_shm *shm_list_ptr;
        int type;
@@ -290,21 +261,15 @@ PHP_FUNCTION(sysvshm_get_var)
        long shm_varpos;
        sysvshm_chunk *shm_var;
        
-       switch (ARG_COUNT(ht)) {
-               case 2:
-                       if (getParameters(ht, 2, &arg_id, &arg_key)==FAILURE) {
-                               RETURN_FALSE;
-                       }
-                       convert_to_long(arg_id);
-                       id = arg_id->value.lval;
-                       convert_to_long(arg_key);
-                       key = arg_key->value.lval;
-                       break;
-               default:
-                       WRONG_PARAM_COUNT;
-                       break;
+       if(ARG_COUNT(ht) != 2 || getParametersEx(2, &arg_id, &arg_key) == FAILURE) {
+               WRONG_PARAM_COUNT;
        }
 
+       convert_to_long_ex(arg_id);
+       id = (*arg_id)->value.lval;
+       convert_to_long_ex(arg_key);
+       key = (*arg_key)->value.lval;
+
        shm_list_ptr = (sysvshm_shm *) php3_list_find(id, &type);
        if (type!=php3_sysvshm_module.le_shm) {
                php_error(E_WARNING, "%d is not a SysV shared memory index", id);
@@ -331,29 +296,23 @@ PHP_FUNCTION(sysvshm_get_var)
 
 /* {{{ proto int shm_remove_var(int id, int key)
    removes variable from shared memory. */
-PHP_FUNCTION(sysvshm_remove_var)
+PHP_FUNCTION(shm_remove_var)
 {
-       pval *arg_id, *arg_key;
+       pval **arg_id, **arg_key;
        long key, id;
        sysvshm_shm *shm_list_ptr;
        int type;
        long shm_varpos;
        
-       switch (ARG_COUNT(ht)) {
-               case 2:
-                       if (getParameters(ht, 2, &arg_id, &arg_key)==FAILURE) {
-                               RETURN_FALSE;
-                       }
-                       convert_to_long(arg_id);
-                       id = arg_id->value.lval;
-                       convert_to_long(arg_key);
-                       key = arg_key->value.lval;
-                       break;
-               default:
-                       WRONG_PARAM_COUNT;
-                       break;
+       if(ARG_COUNT(ht) != 2 || getParametersEx(2, &arg_id, &arg_key) == FAILURE) {
+               WRONG_PARAM_COUNT;
        }
 
+       convert_to_long_ex(arg_id);
+       id = (*arg_id)->value.lval;
+       convert_to_long_ex(arg_key);
+       key = (*arg_key)->value.lval;
+
        shm_list_ptr = (sysvshm_shm *) php3_list_find(id, &type);
        if (type!=php3_sysvshm_module.le_shm) {
                php_error(E_WARNING, "%d is not a SysV shared memory index", id);