Changeset 10933 in webkit for trunk/JavaScriptCore/kjs
- Timestamp:
- Oct 24, 2005, 2:22:21 PM (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/lexer.cpp
r10701 r10933 40 40 #include "lookup.h" 41 41 #include "internal.h" 42 #include <unicode/uchar.h> 42 43 43 44 // we can't specify the namespace in yacc's C output, so do it here … … 74 75 // allocate space for read buffers 75 76 buffer8 = new char[size8]; 76 buffer16 = new UChar[size16];77 buffer16 = new KJS::UChar[size16]; 77 78 currLexer = this; 78 79 } … … 102 103 #endif 103 104 104 void Lexer::setCode(const UString &sourceURL, int startingLineNumber, const UChar *c, unsigned int len)105 void Lexer::setCode(const UString &sourceURL, int startingLineNumber, const KJS::UChar *c, unsigned int len) 105 106 { 106 107 yylineno = 1 + startingLineNumber; … … 122 123 123 124 // read first characters 124 current = (length > 0) ? code[0].uc : 0; 125 next1 = (length > 1) ? code[1].uc : 0; 126 next2 = (length > 2) ? code[2].uc : 0; 127 next3 = (length > 3) ? code[3].uc : 0; 125 shift(4); 128 126 } 129 127 … … 131 129 { 132 130 while (p--) { 133 pos++;134 131 current = next1; 135 132 next1 = next2; 136 133 next2 = next3; 137 next3 = (pos + 3 < length) ? code[pos+3].uc : 0; 134 do { 135 if (pos >= length) { 136 next3 = 0; 137 break; 138 } 139 next3 = code[pos++].uc; 140 } while (u_charType(next3) == U_FORMAT_CHAR); 138 141 } 139 142 } … … 752 755 } 753 756 754 UChar Lexer::convertUnicode(unsigned short c1, unsigned short c2,757 KJS::UChar Lexer::convertUnicode(unsigned short c1, unsigned short c2, 755 758 unsigned short c3, unsigned short c4) 756 759 { 757 return UChar((convertHex(c1) << 4) + convertHex(c2),760 return KJS::UChar((convertHex(c1) << 4) + convertHex(c2), 758 761 (convertHex(c3) << 4) + convertHex(c4)); 759 762 } … … 775 778 } 776 779 777 void Lexer::record16( UChar c)780 void Lexer::record16(KJS::UChar c) 778 781 { 779 782 // enlarge buffer if full 780 783 if (pos16 >= size16 - 1) { 781 UChar *tmp = newUChar[2 * size16];782 memcpy(tmp, buffer16, size16 * sizeof( UChar));784 KJS::UChar *tmp = new KJS::UChar[2 * size16]; 785 memcpy(tmp, buffer16, size16 * sizeof(KJS::UChar)); 783 786 delete [] buffer16; 784 787 buffer16 = tmp; … … 852 855 const int growthFactor = 2; 853 856 854 Identifier *Lexer::makeIdentifier( UChar *buffer, unsigned int pos)857 Identifier *Lexer::makeIdentifier(KJS::UChar *buffer, unsigned int pos) 855 858 { 856 859 if (numIdentifiers == identifiersCapacity) { … … 864 867 } 865 868 866 UString *Lexer::makeUString( UChar *buffer, unsigned int pos)869 UString *Lexer::makeUString(KJS::UChar *buffer, unsigned int pos) 867 870 { 868 871 if (numStrings == stringsCapacity) {
Note:
See TracChangeset
for help on using the changeset viewer.