]> git.saurik.com Git - apple/javascriptcore.git/commitdiff
JavaScriptCore-466.1.3.tar.gz iphone-22 v466.1.3
authorApple <opensource@apple.com>
Fri, 21 Nov 2008 18:54:32 +0000 (18:54 +0000)
committerApple <opensource@apple.com>
Fri, 21 Nov 2008 18:54:32 +0000 (18:54 +0000)
bindings/make_testbindings [changed mode: 0755->0644]
kjs/JSLock.cpp
kjs/JSLockC.h
kjs/create_hash_table [changed mode: 0755->0644]
kjs/lexer.cpp
make-generated-sources.sh [changed mode: 0755->0644]
pcre/dftables [changed mode: 0755->0644]
wtf/FastMalloc.cpp
wtf/OwnPtrWin.cpp [changed mode: 0755->0644]

old mode 100755 (executable)
new mode 100644 (file)
index 4439c4844b1f28974ebf4689c32c9ed5bd7717f5..ce55df39be00be2cf2c745161e4d3b1de9048a08 100644 (file)
@@ -149,20 +149,19 @@ int JSLock::lockCount()
 extern "C" {
 #endif
 
-int JSLockDropAllLocks(void)
+static JSLock::DropAllLocks* sLockDropper = NULL;
+    
+void JSLockDropAllLocks(void)
 {
-    KJS::JSLock::lock();
-    int lockCount = KJS::JSLock::lockCount();
-    for (int i = 0; i < lockCount; i++)
-        KJS::JSLock::unlock();
-    return lockCount - 1;
+    ASSERT(sLockDropper == NULL);
+    sLockDropper = new JSLock::DropAllLocks();
 }
 
-void JSLockRecoverAllLocks(int lockCount)
+void JSLockRecoverAllLocks(void)
 {
-    ASSERT(KJS::JSLock::lockCount() == 0);
-    for (int i = 0; i < lockCount; i++)
-        KJS::JSLock::lock();
+    ASSERT(sLockDropper != NULL);
+    delete sLockDropper;
+    sLockDropper = NULL;
 }    
 
 static pthread_t javaScriptCollectionThread = 0;
index b3c181dc06beca18a118ab379c82492a4c1a2633..787698d9197cabad9e9d7c52501c4ff298e03d94 100644 (file)
@@ -8,8 +8,8 @@
 extern "C" { 
 #endif
 
-int JSLockDropAllLocks(void);
-void JSLockRecoverAllLocks(int lockCount);
+void JSLockDropAllLocks(void);
+void JSLockRecoverAllLocks(void);
 void JSSetJavaScriptCollectionThread (pthread_t thread);
 pthread_t JSJavaScriptCollectionThread (void);
 
old mode 100755 (executable)
new mode 100644 (file)
index c4d327f3a53a7a292dc8d7ec3574d5c9842c6c8f..dd4fcc4ca5c1a673c55493fe2189e315a4fc9f96 100644 (file)
@@ -1,7 +1,7 @@
 // -*- c-basic-offset: 2 -*-
 /*
  *  Copyright (C) 1999-2000 Harri Porten (porten@kde.org)
- *  Copyright (C) 2006, 2007 Apple Inc. All Rights Reserved.
+ *  Copyright (C) 2006, 2007, 2008 Apple Inc. All Rights Reserved.
  *  Copyright (C) 2007 Cameron Zwarich (cwzwarich@uwaterloo.ca)
  *
  *  This library is free software; you can redistribute it and/or
@@ -96,38 +96,41 @@ Lexer::Lexer()
 
 void Lexer::setCode(int startingLineNumber, const KJS::UChar *c, unsigned int len)
 {
-  yylineno = 1 + startingLineNumber;
-  restrKeyword = false;
-  delimited = false;
-  eatNextIdentifier = false;
-  stackToken = -1;
-  lastToken = -1;
-  pos = 0;
-  code = c;
-  length = len;
-  skipLF = false;
-  skipCR = false;
-  error = false;
-  atLineStart = true;
-
-  // read first characters
-  current = (length > 0) ? code[0].uc : -1;
-  next1 = (length > 1) ? code[1].uc : -1;
-  next2 = (length > 2) ? code[2].uc : -1;
-  next3 = (length > 3) ? code[3].uc : -1;
+    yylineno = 1 + startingLineNumber;
+    restrKeyword = false;
+    delimited = false;
+    eatNextIdentifier = false;
+    stackToken = -1;
+    lastToken = -1;
+    pos = 0;
+    code = c;
+    length = len;
+    skipLF = false;
+    skipCR = false;
+    error = false;
+    atLineStart = true;
+    
+    // read first characters
+    shift(4);
 }
 
-void Lexer::shift(unsigned int p)
+void Lexer::shift(unsigned p)
 {
-  // Here would be a good place to strip Cf characters, but that has caused compatibility problems:
-  // <http://bugs.webkit.org/show_bug.cgi?id=10183>.
-  while (p--) {
-    pos++;
-    current = next1;
-    next1 = next2;
-    next2 = next3;
-    next3 = (pos + 3 < length) ? code[pos + 3].uc : -1;
-  }
+    // ECMA-262 calls for stripping Cf characters here, but we only do this for BOM,
+    // see <https://bugs.webkit.org/show_bug.cgi?id=4931>.
+    
+    while (p--) {
+        current = next1;
+        next1 = next2;
+        next2 = next3;
+        do {
+            if (pos >= length) {
+                next3 = -1;
+                break;
+            }
+            next3 = code[pos++].uc;
+        } while (next3 == 0xFEFF);
+    }
 }
 
 // called on each new line
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
index b44035c1c49cec032a157134c036ce514d0f8eef..f5f54f5b6533b10a6089b9816c7be2325e77f223 100644 (file)
@@ -1338,9 +1338,7 @@ void TCMalloc_PageHeap::IncrementalScavenge(Length n) {
   scavenge_counter_ -= n;
   if (scavenge_counter_ >= 0) return;  // Not yet time to scavenge
 
-  // If there is nothing to release, wait for so many pages before
-  // scavenging again.  With 4K pages, this comes to 16MB of memory.
-  static const size_t kDefaultReleaseDelay = 1 << 8;
+  static const size_t kDefaultReleaseDelay = 64;
 
   // Find index of free list to scavenge
   size_t index = scavenge_index_ + 1;
@@ -1355,7 +1353,7 @@ void TCMalloc_PageHeap::IncrementalScavenge(Length n) {
                              static_cast<size_t>(s->length << kPageShift));
       DLL_Prepend(&slist->returned, s);
 
-      scavenge_counter_ = std::max<size_t>(64UL, std::min<size_t>(kDefaultReleaseDelay, kDefaultReleaseDelay - (free_pages_ / kDefaultReleaseDelay)));
+      scavenge_counter_ = std::max<size_t>(16UL, std::min<size_t>(kDefaultReleaseDelay, kDefaultReleaseDelay - (free_pages_ / kDefaultReleaseDelay)));
 
       if (index == kMaxPages && !DLL_IsEmpty(&slist->normal))
         scavenge_index_ = index - 1;
old mode 100755 (executable)
new mode 100644 (file)