2007-11-14 Eric Seidel <eric@webkit.org>
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Nov 2007 02:40:31 +0000 (02:40 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 15 Nov 2007 02:40:31 +0000 (02:40 +0000)
        Reviewed by Oliver.

        More PCRE style cleanup.

        * pcre/pcre_compile.cpp:
        (compile_regex):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@27807 268f45cc-cd09-0410-ab3c-d52691b4dbfc

JavaScriptCore/ChangeLog
JavaScriptCore/pcre/pcre_compile.cpp

index 4f91d6282ba69aca0210b24926724c8acaafe921..250b3603e322526ae278db54cfbc2dbdd8999ef9 100644 (file)
@@ -1,3 +1,12 @@
+2007-11-14  Eric Seidel  <eric@webkit.org>
+
+        Reviewed by Oliver.
+        
+        More PCRE style cleanup.
+
+        * pcre/pcre_compile.cpp:
+        (compile_regex):
+
 2007-11-14  Adam Roben  <aroben@apple.com>
 
         Clean up the bison conflict checking script
index 70e3aa416e3630f49d8957293c15c16ad44deb66..511484fec58d8d820f7b3c81006bac8f1dc586ba 100644 (file)
@@ -2084,129 +2084,121 @@ Returns:      true on success
 */
 
 static BOOL
-compile_regex(int options, int *brackets, uschar **codeptr,
-  const pcre_uchar **ptrptr, const pcre_uchar *patternEnd, ErrorCode* errorcodeptr, int skipbytes,
-  int *firstbyteptr, int *reqbyteptr, compile_data *cd)
+compile_regex(int options, int* brackets, uschar** codeptr,
+              const pcre_uchar** ptrptr, const pcre_uchar* patternEnd, ErrorCode* errorcodeptr, int skipbytes,
+              int* firstbyteptr, int* reqbyteptr, compile_data* cd)
 {
-const pcre_uchar *ptr = *ptrptr;
-uschar *code = *codeptr;
-uschar *last_branch = code;
-uschar *start_bracket = code;
-int firstbyte, reqbyte;
-int branchfirstbyte, branchreqbyte;
-
-firstbyte = reqbyte = REQ_UNSET;
-
-/* Offset is set zero to mark that this bracket is still open */
-
-PUT(code, 1, 0);
-code += 1 + LINK_SIZE + skipbytes;
-
-/* Loop for each alternative branch */
-
-for (;;)
-  {
-  /* Now compile the branch */
-
-  if (!compile_branch(options, brackets, &code, &ptr, patternEnd, errorcodeptr,
-        &branchfirstbyte, &branchreqbyte, cd))
-    {
-    *ptrptr = ptr;
-    return false;
-    }
-
-  /* If this is the first branch, the firstbyte and reqbyte values for the
-  branch become the values for the regex. */
-
-  if (*last_branch != OP_ALT)
-    {
-    firstbyte = branchfirstbyte;
-    reqbyte = branchreqbyte;
-    }
-
-  /* If this is not the first branch, the first char and reqbyte have to
-  match the values from all the previous branches, except that if the previous
-  value for reqbyte didn't have REQ_VARY set, it can still match, and we set
-  REQ_VARY for the regex. */
-
-  else
-    {
-    /* If we previously had a firstbyte, but it doesn't match the new branch,
-    we have to abandon the firstbyte for the regex, but if there was previously
-    no reqbyte, it takes on the value of the old firstbyte. */
-
-    if (firstbyte >= 0 && firstbyte != branchfirstbyte)
-      {
-      if (reqbyte < 0) reqbyte = firstbyte;
-      firstbyte = REQ_NONE;
-      }
-
-    /* If we (now or from before) have no firstbyte, a firstbyte from the
-    branch becomes a reqbyte if there isn't a branch reqbyte. */
-
-    if (firstbyte < 0 && branchfirstbyte >= 0 && branchreqbyte < 0)
-        branchreqbyte = branchfirstbyte;
-
-    /* Now ensure that the reqbytes match */
-
-    if ((reqbyte & ~REQ_VARY) != (branchreqbyte & ~REQ_VARY))
-      reqbyte = REQ_NONE;
-    else reqbyte |= branchreqbyte;   /* To "or" REQ_VARY */
-    }
-
-  /* Reached end of expression, either ')' or end of pattern. Go back through
-  the alternative branches and reverse the chain of offsets, with the field in
-  the BRA item now becoming an offset to the first alternative. If there are
-  no alternatives, it points to the end of the group. The length in the
-  terminating ket is always the length of the whole bracketed item. If any of
-  the ims options were changed inside the group, compile a resetting op-code
-  following, except at the very end of the pattern. Return leaving the pointer
-  at the terminating char. */
-
-  if (ptr >= patternEnd || *ptr != '|')
-    {
-    int length = code - last_branch;
-    do
-      {
-      int prev_length = GET(last_branch, 1);
-      PUT(last_branch, 1, length);
-      length = prev_length;
-      last_branch -= length;
-      }
-    while (length > 0);
-
-    /* Fill in the ket */
-
-    *code = OP_KET;
-    PUT(code, 1, code - start_bracket);
-    code += 1 + LINK_SIZE;
-
-    /* Set values to pass back */
-
-    *codeptr = code;
-    *ptrptr = ptr;
-    *firstbyteptr = firstbyte;
-    *reqbyteptr = reqbyte;
-    return true;
+    const pcre_uchar* ptr = *ptrptr;
+    uschar* code = *codeptr;
+    uschar* last_branch = code;
+    uschar* start_bracket = code;
+    int firstbyte, reqbyte;
+    int branchfirstbyte, branchreqbyte;
+    
+    firstbyte = reqbyte = REQ_UNSET;
+    
+    /* Offset is set zero to mark that this bracket is still open */
+    
+    PUT(code, 1, 0);
+    code += 1 + LINK_SIZE + skipbytes;
+    
+    /* Loop for each alternative branch */
+    
+    while (true) {
+        /* Now compile the branch */
+        
+        if (!compile_branch(options, brackets, &code, &ptr, patternEnd, errorcodeptr,
+                            &branchfirstbyte, &branchreqbyte, cd)) {
+            *ptrptr = ptr;
+            return false;
+        }
+        
+        /* If this is the first branch, the firstbyte and reqbyte values for the
+         branch become the values for the regex. */
+        
+        if (*last_branch != OP_ALT) {
+            firstbyte = branchfirstbyte;
+            reqbyte = branchreqbyte;
+        }
+        
+        /* If this is not the first branch, the first char and reqbyte have to
+         match the values from all the previous branches, except that if the previous
+         value for reqbyte didn't have REQ_VARY set, it can still match, and we set
+         REQ_VARY for the regex. */
+        
+        else {
+            /* If we previously had a firstbyte, but it doesn't match the new branch,
+             we have to abandon the firstbyte for the regex, but if there was previously
+             no reqbyte, it takes on the value of the old firstbyte. */
+            
+            if (firstbyte >= 0 && firstbyte != branchfirstbyte) {
+                if (reqbyte < 0)
+                    reqbyte = firstbyte;
+                firstbyte = REQ_NONE;
+            }
+            
+            /* If we (now or from before) have no firstbyte, a firstbyte from the
+             branch becomes a reqbyte if there isn't a branch reqbyte. */
+            
+            if (firstbyte < 0 && branchfirstbyte >= 0 && branchreqbyte < 0)
+                branchreqbyte = branchfirstbyte;
+            
+            /* Now ensure that the reqbytes match */
+            
+            if ((reqbyte & ~REQ_VARY) != (branchreqbyte & ~REQ_VARY))
+                reqbyte = REQ_NONE;
+            else
+                reqbyte |= branchreqbyte;   /* To "or" REQ_VARY */
+        }
+        
+        /* Reached end of expression, either ')' or end of pattern. Go back through
+         the alternative branches and reverse the chain of offsets, with the field in
+         the BRA item now becoming an offset to the first alternative. If there are
+         no alternatives, it points to the end of the group. The length in the
+         terminating ket is always the length of the whole bracketed item. If any of
+         the ims options were changed inside the group, compile a resetting op-code
+         following, except at the very end of the pattern. Return leaving the pointer
+         at the terminating char. */
+        
+        if (ptr >= patternEnd || *ptr != '|') {
+            int length = code - last_branch;
+            do {
+                int prev_length = GET(last_branch, 1);
+                PUT(last_branch, 1, length);
+                length = prev_length;
+                last_branch -= length;
+            } while (length > 0);
+            
+            /* Fill in the ket */
+            
+            *code = OP_KET;
+            PUT(code, 1, code - start_bracket);
+            code += 1 + LINK_SIZE;
+            
+            /* Set values to pass back */
+            
+            *codeptr = code;
+            *ptrptr = ptr;
+            *firstbyteptr = firstbyte;
+            *reqbyteptr = reqbyte;
+            return true;
+        }
+        
+        /* Another branch follows; insert an "or" node. Its length field points back
+         to the previous branch while the bracket remains open. At the end the chain
+         is reversed. It's done like this so that the start of the bracket has a
+         zero offset until it is closed, making it possible to detect recursion. */
+        
+        *code = OP_ALT;
+        PUT(code, 1, code - last_branch);
+        last_branch = code;
+        code += 1 + LINK_SIZE;
+        ptr++;
     }
-
-  /* Another branch follows; insert an "or" node. Its length field points back
-  to the previous branch while the bracket remains open. At the end the chain
-  is reversed. It's done like this so that the start of the bracket has a
-  zero offset until it is closed, making it possible to detect recursion. */
-
-  *code = OP_ALT;
-  PUT(code, 1, code - last_branch);
-  last_branch = code;
-  code += 1 + LINK_SIZE;
-  ptr++;
-  }
-/* Control never reaches here */
+    ASSERT_NOT_REACHED();
 }
 
 
-
-
 /*************************************************
 *          Check for anchored expression         *
 *************************************************/