OSDN Git Service

2000-08-31 J. David Anglin <dave@hiauly1.hia.nrc.ca>
authorovidiu <ovidiu@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 2 Sep 2000 05:20:37 +0000 (05:20 +0000)
committerovidiu <ovidiu@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 2 Sep 2000 05:20:37 +0000 (05:20 +0000)
* gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
object before calling pthread_mutex_init.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36112 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/gthr-dce.h

index 03a624c..5d9a80a 100644 (file)
@@ -1,3 +1,8 @@
+2000-08-31  J. David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+       * gthr-dce.h (__gthread_objc_mutex_allocate): Create a pthread_mutex_t
+       object before calling pthread_mutex_init.
+
 2000-09-02  Alexandre Oliva  <aoliva@redhat.com>
 
        * config/sh/t-elf, config/sh/crt1.asm, config/sh/crti.asm,
index 199dfe6..c2c24cd 100644 (file)
@@ -274,10 +274,18 @@ __gthread_objc_thread_get_data(void)
 static inline int
 __gthread_objc_mutex_allocate(objc_mutex_t mutex)
 {
-  if (__gthread_active_p ()
-      && pthread_mutex_init((pthread_mutex_t *)mutex->backend,
+  if (__gthread_active_p ())
+    {
+      mutex->backend = objc_malloc(sizeof(pthread_mutex_t));
+
+      if (pthread_mutex_init((pthread_mutex_t *)mutex->backend,
                            pthread_mutexattr_default))
-    return -1;
+        {
+          objc_free(mutex->backend);
+          mutex->backend = NULL;
+          return -1;
+        }
+    }
 
   return 0;
 }