| OLD | NEW | 
|---|
| 1 // Copyright 2008 the V8 project authors. All rights reserved. | 1 // Copyright 2008 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 74 const byte* NativeRegExpMacroAssembler::StringCharacterPosition( | 74 const byte* NativeRegExpMacroAssembler::StringCharacterPosition( | 
| 75     String* subject, | 75     String* subject, | 
| 76     int start_index) { | 76     int start_index) { | 
| 77   // Not just flat, but ultra flat. | 77   // Not just flat, but ultra flat. | 
| 78   ASSERT(subject->IsExternalString() || subject->IsSeqString()); | 78   ASSERT(subject->IsExternalString() || subject->IsSeqString()); | 
| 79   ASSERT(start_index >= 0); | 79   ASSERT(start_index >= 0); | 
| 80   ASSERT(start_index <= subject->length()); | 80   ASSERT(start_index <= subject->length()); | 
| 81   if (subject->IsAsciiRepresentation()) { | 81   if (subject->IsAsciiRepresentation()) { | 
| 82     const byte* address; | 82     const byte* address; | 
| 83     if (StringShape(subject).IsExternal()) { | 83     if (StringShape(subject).IsExternal()) { | 
| 84       const char* data = ExternalAsciiString::cast(subject)->resource()->data(); | 84       const char* data = ExternalAsciiString::cast(subject)->GetChars(); | 
| 85       address = reinterpret_cast<const byte*>(data); | 85       address = reinterpret_cast<const byte*>(data); | 
| 86     } else { | 86     } else { | 
| 87       ASSERT(subject->IsSeqAsciiString()); | 87       ASSERT(subject->IsSeqAsciiString()); | 
| 88       char* data = SeqAsciiString::cast(subject)->GetChars(); | 88       char* data = SeqAsciiString::cast(subject)->GetChars(); | 
| 89       address = reinterpret_cast<const byte*>(data); | 89       address = reinterpret_cast<const byte*>(data); | 
| 90     } | 90     } | 
| 91     return address + start_index; | 91     return address + start_index; | 
| 92   } | 92   } | 
| 93   const uc16* data; | 93   const uc16* data; | 
| 94   if (StringShape(subject).IsExternal()) { | 94   if (StringShape(subject).IsExternal()) { | 
| 95     data = ExternalTwoByteString::cast(subject)->resource()->data(); | 95     data = ExternalTwoByteString::cast(subject)->GetChars(); | 
| 96   } else { | 96   } else { | 
| 97     ASSERT(subject->IsSeqTwoByteString()); | 97     ASSERT(subject->IsSeqTwoByteString()); | 
| 98     data = SeqTwoByteString::cast(subject)->GetChars(); | 98     data = SeqTwoByteString::cast(subject)->GetChars(); | 
| 99   } | 99   } | 
| 100   return reinterpret_cast<const byte*>(data + start_index); | 100   return reinterpret_cast<const byte*>(data + start_index); | 
| 101 } | 101 } | 
| 102 | 102 | 
| 103 | 103 | 
| 104 NativeRegExpMacroAssembler::Result NativeRegExpMacroAssembler::Match( | 104 NativeRegExpMacroAssembler::Result NativeRegExpMacroAssembler::Match( | 
| 105     Handle<Code> regexp_code, | 105     Handle<Code> regexp_code, | 
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 262     return NULL; | 262     return NULL; | 
| 263   } | 263   } | 
| 264   *stack_base = new_stack_base; | 264   *stack_base = new_stack_base; | 
| 265   intptr_t stack_content_size = old_stack_base - stack_pointer; | 265   intptr_t stack_content_size = old_stack_base - stack_pointer; | 
| 266   return new_stack_base - stack_content_size; | 266   return new_stack_base - stack_content_size; | 
| 267 } | 267 } | 
| 268 | 268 | 
| 269 #endif  // V8_INTERPRETED_REGEXP | 269 #endif  // V8_INTERPRETED_REGEXP | 
| 270 | 270 | 
| 271 } }  // namespace v8::internal | 271 } }  // namespace v8::internal | 
| OLD | NEW | 
|---|