[newlib-cygwin] newlib: don't check malloc/free pointer

Corinna Vinschen corinna@sourceware.org
Wed Aug 8 08:53:00 GMT 2018


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=6f485ba0261f88c1eca15bb8061ab2e6af863bbf

commit 6f485ba0261f88c1eca15bb8061ab2e6af863bbf
Author: Corinna Vinschen <corinna@vinschen.de>
Date:   Wed Aug 8 10:42:48 2018 +0200

    newlib: don't check malloc/free pointer
    
    use preprocessor check for MALLOC_PROVIDED instead
    
    Signed-off-by: Corinna Vinschen <corinna@vinschen.de>

Diff:
---
 newlib/libc/stdlib/__atexit.c      | 12 +-----------
 newlib/libc/stdlib/__call_atexit.c |  7 +------
 2 files changed, 2 insertions(+), 17 deletions(-)

diff --git a/newlib/libc/stdlib/__atexit.c b/newlib/libc/stdlib/__atexit.c
index b534026..97ce053 100644
--- a/newlib/libc/stdlib/__atexit.c
+++ b/newlib/libc/stdlib/__atexit.c
@@ -89,22 +89,12 @@ __register_exitproc (int type,
     }
   if (p->_ind >= _ATEXIT_SIZE)
     {
-#ifndef _ATEXIT_DYNAMIC_ALLOC
+#if !defined (_ATEXIT_DYNAMIC_ALLOC) || !defined (MALLOC_PROVIDED)
 #ifndef __SINGLE_THREAD__
       __lock_release_recursive(__atexit_recursive_mutex);
 #endif
       return -1;
 #else
-      /* Don't dynamically allocate the atexit array if malloc is not
-	 available.  */
-      if (!malloc)
-	{
-#ifndef __SINGLE_THREAD__
-	  __lock_release_recursive(__atexit_recursive_mutex);
-#endif
-	  return -1;
-	}
-
       p = (struct _atexit *) malloc (sizeof *p);
       if (p == NULL)
 	{
diff --git a/newlib/libc/stdlib/__call_atexit.c b/newlib/libc/stdlib/__call_atexit.c
index 27aedf5..3eec112 100644
--- a/newlib/libc/stdlib/__call_atexit.c
+++ b/newlib/libc/stdlib/__call_atexit.c
@@ -131,14 +131,9 @@ __call_exitprocs (int code, void *d)
 	    goto restart;
 	}
 
-#ifndef _ATEXIT_DYNAMIC_ALLOC
+#if !defined (_ATEXIT_DYNAMIC_ALLOC) || !defined (MALLOC_PROVIDED)
       break;
 #else
-      /* Don't dynamically free the atexit array if free is not
-	 available.  */
-      if (!free)
-	break;
-
       /* Move to the next block.  Free empty blocks except the last one,
 	 which is part of _GLOBAL_REENT.  */
       if (p->_ind == 0 && p->_next)



More information about the Newlib-cvs mailing list