Index: trunk/src/libs/xpcom18a4/xpcom/ds/nsArrayEnumerator.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/ds/nsArrayEnumerator.cpp	(revision 104487)
+++ trunk/src/libs/xpcom18a4/xpcom/ds/nsArrayEnumerator.cpp	(revision 104488)
@@ -109,5 +109,5 @@
 
     // nsSimpleArrayEnumerator methods
-    nsCOMArrayEnumerator() : mIndex(0) {
+    nsCOMArrayEnumerator() : mIndex(0), mArraySize(0) {
     }
 
Index: trunk/src/libs/xpcom18a4/xpcom/ds/nsCRT.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/ds/nsCRT.cpp	(revision 104487)
+++ trunk/src/libs/xpcom18a4/xpcom/ds/nsCRT.cpp	(revision 104488)
@@ -51,4 +51,5 @@
  */
 
+#include <iprt/cdefs.h>
 
 #include "nsCRT.h"
@@ -370,9 +371,9 @@
             switch ( code_length )
               {  // falling through in each case
-                case 6:   h = (h>>28) ^ (h<<4) ^ (0x80 | ((U>>24) & 0x003F));
-                case 5:   h = (h>>28) ^ (h<<4) ^ (0x80 | ((U>>18) & 0x003F));
-                case 4:   h = (h>>28) ^ (h<<4) ^ (0x80 | ((U>>12) & 0x003F));
-                case 3:   h = (h>>28) ^ (h<<4) ^ (0x80 | ((U>>6 ) & 0x003F));
-                case 2:   h = (h>>28) ^ (h<<4) ^ (0x80 | ( U      & 0x003F));
+                case 6:   h = (h>>28) ^ (h<<4) ^ (0x80 | ((U>>24) & 0x003F)); RT_FALL_THROUGH();
+                case 5:   h = (h>>28) ^ (h<<4) ^ (0x80 | ((U>>18) & 0x003F)); RT_FALL_THROUGH();
+                case 4:   h = (h>>28) ^ (h<<4) ^ (0x80 | ((U>>12) & 0x003F)); RT_FALL_THROUGH();
+                case 3:   h = (h>>28) ^ (h<<4) ^ (0x80 | ((U>>6 ) & 0x003F)); RT_FALL_THROUGH();
+                case 2:   h = (h>>28) ^ (h<<4) ^ (0x80 | ( U      & 0x003F)); RT_FALL_THROUGH();
                 default:  code_length = 0;
                   break;
@@ -416,5 +417,6 @@
         return LL_Zero();
 
-    PRInt64 ll = LL_Zero(), digitll = LL_Zero();
+    PRInt64 ll = LL_Zero();
+    PRInt64 digitll;
 
     while (*str && *str >= '0' && *str <= '9') {
Index: trunk/src/libs/xpcom18a4/xpcom/ds/nsManifestLineReader.h
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/ds/nsManifestLineReader.h	(revision 104487)
+++ trunk/src/libs/xpcom18a4/xpcom/ds/nsManifestLineReader.h	(revision 104488)
@@ -45,5 +45,10 @@
 {
 public:
-    nsManifestLineReader() : mBase(nsnull) {} 
+    nsManifestLineReader()
+        : mCur(nsnull)
+        , mLength(0)
+        , mNext(nsnull)
+        , mBase(nsnull)
+        , mLimit(nsnull) {} 
     ~nsManifestLineReader() {}
 
Index: trunk/src/libs/xpcom18a4/xpcom/ds/nsSupportsArray.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/ds/nsSupportsArray.cpp	(revision 104487)
+++ trunk/src/libs/xpcom18a4/xpcom/ds/nsSupportsArray.cpp	(revision 104488)
@@ -222,8 +222,8 @@
 nsSupportsArray::Read(nsIObjectInputStream *aStream)
 {
-  nsresult rv;
-
   PRUint32 newArraySize;
-  rv = aStream->Read32(&newArraySize);
+  nsresult rv = aStream->Read32(&newArraySize);
+  if (NS_FAILED(rv))
+    return rv;
 
   if (newArraySize <= kAutoArraySize) {
@@ -665,7 +665,9 @@
 nsSupportsArray::Clone(nsISupportsArray* *result)
 {
-  nsresult rv;
   nsISupportsArray* newArray;
-  rv = NS_NewISupportsArray(&newArray);
+  nsresult rv = NS_NewISupportsArray(&newArray);
+  if (NS_FAILED(rv))
+    return rv;
+
   PRBool ok = EnumerateForwards(CopyElement, newArray);
   if (!ok) return NS_ERROR_OUT_OF_MEMORY;
Index: trunk/src/libs/xpcom18a4/xpcom/ds/nsVoidArray.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/ds/nsVoidArray.cpp	(revision 104487)
+++ trunk/src/libs/xpcom18a4/xpcom/ds/nsVoidArray.cpp	(revision 104488)
@@ -269,5 +269,5 @@
     {
       newCapacity = GetArraySize() + PR_MAX(kMaxGrowArrayBy,aGrowBy);
-      newSize = SIZEOF_IMPL(newCapacity);
+      //newSize = SIZEOF_IMPL(newCapacity); Not used below
     }
     else
