]> granicus.if.org Git - php/commitdiff
Revert.
authorSebastian Bergmann <sebastian@php.net>
Sun, 28 Apr 2002 06:24:15 +0000 (06:24 +0000)
committerSebastian Bergmann <sebastian@php.net>
Sun, 28 Apr 2002 06:24:15 +0000 (06:24 +0000)
Zend/zend_alloc.c
Zend/zend_alloc.h

index 81ac7eafa146904e628e54185f07db45433cebf2..b24e31c2a1157fcf0bd922bbec812c6de59c280f 100644 (file)
@@ -248,6 +248,23 @@ 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 76a5bf2e398d68f306126ff2169935f43b7039e4..c89fbfd04ab06e435b7221cffeddd68b149bbb1a 100644 (file)
@@ -75,6 +75,7 @@ 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);
@@ -93,7 +94,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)                       memset(_emalloc((nmemb)*(size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC), 0, (nmemb)*(size))
+#define ecalloc_rel(nmemb, size)                       _ecalloc((nmemb), (size) ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC)
 #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)