Bug 795987: Upgrade NSPR to NSPR_4_9_3_RTM. Includes a patch for
authorWan-Teh Chang <wtc@google.com>
Wed, 24 Oct 2012 12:37:30 -0700
changeset 111412 fe526c7150ebc848e2cebc8067b8f39812bee1b9
parent 111411 6ddc79908e6412c9cd31a0cc2e1b7fdb54c5fc51
child 111413 20c0647bdacc237ee8c8f35a96c68cbe8b8b3ec0
push id93
push usernmatsakis@mozilla.com
push dateWed, 31 Oct 2012 21:26:57 +0000
bugs795987, 749849
milestone19.0a1
Bug 795987: Upgrade NSPR to NSPR_4_9_3_RTM. Includes a patch for bug 749849.
nsprpub/TAG-INFO
nsprpub/config/prdepend.h
nsprpub/pr/include/prinit.h
nsprpub/pr/src/pthreads/ptthread.c
--- a/nsprpub/TAG-INFO
+++ b/nsprpub/TAG-INFO
@@ -1,1 +1,1 @@
-NSPR_4_9_3_BETA2
+NSPR_4_9_3_RTM
--- a/nsprpub/config/prdepend.h
+++ b/nsprpub/config/prdepend.h
@@ -5,8 +5,9 @@
 
 /*
  * A dummy header file that is a dependency for all the object files.
  * Used to force a full recompilation of NSPR in Mozilla's Tinderbox
  * depend builds.  See comments in rules.mk.
  */
 
 #error "Do not include this header file."
+
--- a/nsprpub/pr/include/prinit.h
+++ b/nsprpub/pr/include/prinit.h
@@ -26,21 +26,21 @@ PR_BEGIN_EXTERN_C
 /*
 ** NSPR's version is used to determine the likelihood that the version you
 ** used to build your component is anywhere close to being compatible with
 ** what is in the underlying library.
 **
 ** The format of the version string is
 **     "<major version>.<minor version>[.<patch level>] [<Beta>]"
 */
-#define PR_VERSION  "4.9.3 Beta"
+#define PR_VERSION  "4.9.3"
 #define PR_VMAJOR   4
 #define PR_VMINOR   9
 #define PR_VPATCH   3
-#define PR_BETA     PR_TRUE
+#define PR_BETA     PR_FALSE
 
 /*
 ** PRVersionCheck
 **
 ** The basic signature of the function that is called to provide version
 ** checking. The result will be a boolean that indicates the likelihood
 ** that the underling library will perform as the caller expects.
 **
--- a/nsprpub/pr/src/pthreads/ptthread.c
+++ b/nsprpub/pr/src/pthreads/ptthread.c
@@ -1011,26 +1011,24 @@ PR_IMPLEMENT(PRStatus) PR_Cleanup(void)
         _PR_CleanupIO();
         _PR_CleanupCMon();
 
         _pt_thread_death(me);
         rv = pthread_setspecific(pt_book.key, NULL);
         PR_ASSERT(0 == rv);
         /*
          * I am not sure if it's safe to delete the cv and lock here,
-         * since there may still be "system" or "foreign" threads
-         * around. If this call isn't immediately prior to exiting,
-         * then there's a problem.
+         * since there may still be "system" threads around. If this
+         * call isn't immediately prior to exiting, then there's a
+         * problem.
          */
-        if (0 == pt_book.system && NULL == pt_book.first)
+        if (0 == pt_book.system)
         {
             PR_DestroyCondVar(pt_book.cv); pt_book.cv = NULL;
             PR_DestroyLock(pt_book.ml); pt_book.ml = NULL;
-            rv = pthread_key_delete(pt_book.key);
-            PR_ASSERT(0 == rv);
         }
         PR_DestroyLock(_pr_sleeplock);
         _pr_sleeplock = NULL;
         _PR_CleanupLayerCache();
         _PR_CleanupEnv();
 #ifdef _PR_ZONE_ALLOCATOR
         _PR_DestroyZones();
 #endif