Add v8::jscre namespace around jscre functions to avoid link errors with jsc pcre...
authorfeng@chromium.org <feng@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 26 Nov 2008 22:45:21 +0000 (22:45 +0000)
committerfeng@chromium.org <feng@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 26 Nov 2008 22:45:21 +0000 (22:45 +0000)
Review URL: http://codereview.chromium.org/12496

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/jsregexp.cc
src/third_party/jscre/pcre.h
src/third_party/jscre/pcre_compile.cpp
src/third_party/jscre/pcre_exec.cpp
src/third_party/jscre/pcre_internal.h
src/third_party/jscre/pcre_tables.cpp
src/third_party/jscre/pcre_ucp_searchfuncs.cpp
src/third_party/jscre/pcre_xclass.cpp

index 6b24bd95defc6e13892f1ae57d6846db36269475..b286de9ab90c16a14bbbd7a51b4e5f1d21c7e4f3 100644 (file)
@@ -378,23 +378,23 @@ static inline Object* DoCompile(String* pattern,
                                 JSRegExp::Flags flags,
                                 unsigned* number_of_captures,
                                 const char** error_message,
-                                JscreRegExp** code) {
-  JSRegExpIgnoreCaseOption case_option = flags.is_ignore_case()
-    ? JSRegExpIgnoreCase
-    : JSRegExpDoNotIgnoreCase;
-  JSRegExpMultilineOption multiline_option = flags.is_multiline()
-    ? JSRegExpMultiline
-    : JSRegExpSingleLine;
+                                v8::jscre::JscreRegExp** code) {
+  v8::jscre::JSRegExpIgnoreCaseOption case_option = flags.is_ignore_case()
+    ? v8::jscre::JSRegExpIgnoreCase
+    : v8::jscre::JSRegExpDoNotIgnoreCase;
+  v8::jscre::JSRegExpMultilineOption multiline_option = flags.is_multiline()
+    ? v8::jscre::JSRegExpMultiline
+    : v8::jscre::JSRegExpSingleLine;
   *error_message = NULL;
   malloc_failure = Failure::Exception();
-  *code = jsRegExpCompile(pattern->GetTwoByteData(),
-                          pattern->length(),
-                          case_option,
-                          multiline_option,
-                          number_of_captures,
-                          error_message,
-                          &JSREMalloc,
-                          &JSREFree);
+  *code = v8::jscre::jsRegExpCompile(pattern->GetTwoByteData(),
+                                     pattern->length(),
+                                     case_option,
+                                     multiline_option,
+                                     number_of_captures,
+                                     error_message,
+                                     &JSREMalloc,
+                                     &JSREFree);
   if (*code == NULL && (malloc_failure->IsRetryAfterGC() ||
                        malloc_failure->IsOutOfMemoryFailure())) {
     return malloc_failure;
@@ -411,7 +411,7 @@ void CompileWithRetryAfterGC(Handle<String> pattern,
                              JSRegExp::Flags flags,
                              unsigned* number_of_captures,
                              const char** error_message,
-                             JscreRegExp** code) {
+                             v8::jscre::JscreRegExp** code) {
   CALL_HEAP_FUNCTION_VOID(DoCompile(*pattern,
                                     flags,
                                     number_of_captures,
@@ -432,7 +432,7 @@ Handle<Object> RegExpImpl::JscreCompile(Handle<JSRegExp> re) {
   unsigned number_of_captures;
   const char* error_message = NULL;
 
-  JscreRegExp* code = NULL;
+  v8::jscre::JscreRegExp* code = NULL;
   FlattenString(pattern);
 
   CompileWithRetryAfterGC(two_byte_pattern,
@@ -560,23 +560,24 @@ Handle<Object> RegExpImpl::JscreExecOnce(Handle<JSRegExp> regexp,
   {
     AssertNoAllocation a;
     ByteArray* internal = JscreInternal(regexp);
-    const JscreRegExp* js_regexp =
-        reinterpret_cast<JscreRegExp*>(internal->GetDataStartAddress());
+    const v8::jscre::JscreRegExp* js_regexp =
+        reinterpret_cast<v8::jscre::JscreRegExp*>(
+            internal->GetDataStartAddress());
 
     LOG(RegExpExecEvent(regexp, previous_index, subject));
 
-    rc = jsRegExpExecute(js_regexp,
-                         two_byte_subject,
-                         subject->length(),
-                         previous_index,
-                         offsets_vector,
-                         offsets_vector_length);
+    rc = v8::jscre::jsRegExpExecute(js_regexp,
+                                    two_byte_subject,
+                                    subject->length(),
+                                    previous_index,
+                                    offsets_vector,
+                                    offsets_vector_length);
   }
 
   // The KJS JavaScript engine returns null (ie, a failed match) when
   // JSRE's internal match limit is exceeded.  We duplicate that behavior here.
-  if (rc == JSRegExpErrorNoMatch
-      || rc == JSRegExpErrorHitLimit) {
+  if (rc == v8::jscre::JSRegExpErrorNoMatch
+      || rc == v8::jscre::JSRegExpErrorHitLimit) {
     return Factory::null_value();
   }
 
index e11f2ed1ec72d443ad814a0a4f86c068a8cba692..46380f3f4c5eb026de2f53793e080fdce901ea2f 100644 (file)
@@ -49,6 +49,8 @@ POSSIBILITY OF SUCH DAMAGE.
 // we allow DEBUG to be set and undef it manually.
 #undef DEBUG
 
+namespace v8 { namespace jscre {
+
 typedef uint16_t UChar;
 
 struct JSRegExp;
@@ -77,4 +79,6 @@ int jsRegExpExecute(const JSRegExp*,
 
 void jsRegExpFree(JSRegExp*);
 
+} }  // namespace v8::jscre
+
 #endif
index e0238f40b97d6485808028f0b033bb232ff0dfb5..40f55ad79ae05e0ffca564fb4ccdcca6fb93258f 100644 (file)
@@ -65,6 +65,8 @@ compile time. */
 
 #define BRASTACK_SIZE 200
 
+namespace v8 { namespace jscre {
+
 /* Table for handling escaped characters in the range '0'-'z'. Positive returns
 are simple data values; negative values are for special things like \d and so
 on. Zero means further processing is needed (for things like \x), or the escape
@@ -2671,3 +2673,5 @@ void jsRegExpFree(JSRegExp* re, free_t* free_function)
 {
     (*free_function)(reinterpret_cast<void*>(re));
 }
+
+} }  // namespace v8::jscre
index d78e8392a1efa699164d846c4d9bb0a1316d7d15..dda25a49d5982cf71a47ab707f288eecfe8d4be5 100644 (file)
@@ -61,6 +61,8 @@ the JavaScript specification. There are also some supporting functions. */
 #undef min
 #undef max
 
+namespace v8 { namespace jscre {
+
 #ifndef USE_COMPUTED_GOTO_FOR_MATCH_RECURSION
 typedef int ReturnLocation;
 #else
@@ -2079,3 +2081,5 @@ int jsRegExpExecute(const JSRegExp* re,
     DPRINTF((">>>> returning PCRE_ERROR_NOMATCH\n"));
     return JSRegExpErrorNoMatch;
 }
+
+} }  // namespace v8::jscre
index 8480c9076dd7346223c1657069f59e6c4da0682a..503005dd1a75a513a6c935fe9e0feb14c9e19e2b 100644 (file)
@@ -103,6 +103,8 @@ all, it had only been about 10 years then... */
 #define DPRINTF(p) /*nothing*/
 #endif
 
+namespace v8 { namespace jscre {
+
 /* PCRE keeps offsets in its compiled code as 2-byte quantities (always stored
 in big-endian order) by default. These are used, for example, to link from the
 start of a subpattern to its alternatives and its end. The use of 2 bytes per
@@ -416,6 +418,7 @@ but are not part of the public API and so not exported from the library. */
 extern int kjs_pcre_ucp_othercase(unsigned);
 extern bool kjs_pcre_xclass(int, const unsigned char*);
 
+} }  // namespace v8::jscre
 #endif
 
 #endif
index a41cb27f678394fe0235b5ae4d4340af3487313f..3528c7a399bff850099280fee913dd9112e7f5d5 100644 (file)
@@ -42,6 +42,8 @@ PCRE code modules. */
 
 #include "pcre_internal.h"
 
+namespace v8 { namespace jscre {
+
 /*************************************************
 *           Tables for UTF-8 support             *
 *************************************************/
@@ -69,3 +71,5 @@ const unsigned char kjs_pcre_utf8_table4[0x40] = {
   3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5 };
 
 #include "pcre_chartables.c"
+
+} }  // namespace v8::jscre
index f63bdbccca0a7d7d14d9a591e57251f02f79c8bd..18059b4aea2f3cccb301ab646b18d092b2ac4706 100644 (file)
@@ -46,6 +46,8 @@ properties. */
 #include "ucpinternal.h"       /* Internal table details */
 #include "ucptable.cpp"        /* The table itself */
 
+namespace v8 { namespace jscre {
+
 /*************************************************
 *       Search table and return other case       *
 *************************************************/
@@ -96,3 +98,5 @@ int kjs_pcre_ucp_othercase(unsigned c)
         offset |= f1_caseneg;
     return !offset ? -1 : c + offset;
 }
+
+} }  // namespace v8::jscre
index 4bf2a2599075d5c8270a36543cbeadf06812f99b..d006f4c7dd6025d70d4c6af663124a132c6164f8 100644 (file)
@@ -42,6 +42,8 @@ class (one that contains characters whose values are > 255). */
 
 #include "pcre_internal.h"
 
+namespace v8 { namespace jscre {
+
 /*************************************************
 *       Match character against an XCLASS        *
 *************************************************/
@@ -112,3 +114,5 @@ bool kjs_pcre_xclass(int c, const unsigned char* data)
     
     return negated;   /* char did not match */
 }
+
+} }  // namespace v8::jscre