iliaa           Thu Nov  4 19:05:56 2004 EDT

  Modified files:              
    /php-src/ext/shmop  shmop.c 
  Log:
  Simplify and cleanup code.
  
  
http://cvs.php.net/diff.php/php-src/ext/shmop/shmop.c?r1=1.27&r2=1.28&ty=u
Index: php-src/ext/shmop/shmop.c
diff -u php-src/ext/shmop/shmop.c:1.27 php-src/ext/shmop/shmop.c:1.28
--- php-src/ext/shmop/shmop.c:1.27      Thu Jan  8 03:17:25 2004
+++ php-src/ext/shmop/shmop.c   Thu Nov  4 19:05:55 2004
@@ -16,7 +16,7 @@
    |          Ilia Alshanetsky <[EMAIL PROTECTED]>                         |
    +----------------------------------------------------------------------+
  */
-/* $Id: shmop.c,v 1.27 2004/01/08 08:17:25 andi Exp $ */
+/* $Id: shmop.c,v 1.28 2004/11/05 00:05:55 iliaa Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -164,34 +164,33 @@
                        break;
                default:
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid access 
mode");
-                       efree(shmop);
-                       RETURN_FALSE;
+                       goto err;
        }
 
        shmop->shmid = shmget(shmop->key, shmop->size, shmop->shmflg);
        if (shmop->shmid == -1) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to attach or 
create shared memory segment");
-               efree(shmop);
-               RETURN_FALSE;
+               goto err;
        }
 
        if (shmctl(shmop->shmid, IPC_STAT, &shm)) {
-               efree(shmop);
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to get shared 
memory segment information");
-               RETURN_FALSE;
+               goto err;
        }       
 
        shmop->addr = shmat(shmop->shmid, 0, shmop->shmatflg);
        if (shmop->addr == (char*) -1) {
-               efree(shmop);
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "unable to attach to 
shared memory segment");
-               RETURN_FALSE;
+               goto err;
        }
 
        shmop->size = shm.shm_segsz;
 
        rsid = zend_list_insert(shmop, shm_type);
        RETURN_LONG(rsid);
+err:
+       efree(shmop);
+       RETURN_FALSE;
 }
 /* }}} */
 
@@ -222,12 +221,7 @@
                RETURN_FALSE;
        }
 
-       if (start + count > shmop->size) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING, "count is out of range");
-               RETURN_FALSE;
-       }
-
-       if (count < 0 ){
+       if (start + count > shmop->size || count < 0) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "count is out of range");
                RETURN_FALSE;
        }

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

Reply via email to