]> granicus.if.org Git - php/commitdiff
MFZE1: If the size-operands of memset are constants, the compiler can turn them into...
authorSebastian Bergmann <sebastian@php.net>
Sat, 27 Apr 2002 15:23:46 +0000 (15:23 +0000)
committerSebastian Bergmann <sebastian@php.net>
Sat, 27 Apr 2002 15:23:46 +0000 (15:23 +0000)
Zend/zend_alloc.c
Zend/zend_alloc.h

index b24e31c2a1157fcf0bd922bbec812c6de59c280f..81ac7eafa146904e628e54185f07db45433cebf2 100644 (file)
@@ -248,23 +248,6 @@ ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
 }
 
 
-ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
-{
-       void *p;
-       int final_size = size*nmemb;
-       
-       HANDLE_BLOCK_INTERRUPTIONS();
-       p = _emalloc(final_size ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
-       if (!p) {
-               HANDLE_UNBLOCK_INTERRUPTIONS();
-               return (void *) p;
-       }
-       memset(p, 0, final_size);
-       HANDLE_UNBLOCK_INTERRUPTIONS();
-       return p;
-}
-
-
 ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC)
 {
        zend_mem_header *p;
index c89fbfd04ab06e435b7221cffeddd68b149bbb1a..76a5bf2e398d68f306126ff2169935f43b7039e4 100644 (file)
@@ -75,7 +75,6 @@ ZEND_API char *zend_strndup(const char *s, unsigned int length);
 
 ZEND_API void *_emalloc(size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
 ZEND_API void _efree(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
-ZEND_API void *_ecalloc(size_t nmemb, size_t size ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
 ZEND_API void *_erealloc(void *ptr, size_t size, int allow_failure ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
 ZEND_API char *_estrdup(const char *s ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
 ZEND_API char *_estrndup(const char *s, unsigned int length ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
@@ -94,7 +93,7 @@ ZEND_API int _persist_alloc(void *ptr ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC);
 /* Relay wrapper macros */
 #define emalloc_rel(size)                                      _emalloc((size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
 #define efree_rel(ptr)                                         _efree((ptr) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
-#define ecalloc_rel(nmemb, size)                       _ecalloc((nmemb), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
+#define ecalloc_rel(nmemb, size)                       memset(_emalloc((nmemb)*(size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC), 0, (nmemb)*(size))
 #define erealloc_rel(ptr, size)                                _erealloc((ptr), (size), 0 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
 #define erealloc_recoverable_rel(ptr, size)    _erealloc((ptr), (size), 1 ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
 #define estrdup_rel(s)                                         _estrdup((s) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)