Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(356)

Side by Side Diff: src/objects.h

Issue 7039037: Create stand-alone json parser (including scanner). (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: '' Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/json-parser.cc ('k') | src/objects.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 2410 matching lines...) Expand 10 before | Expand all | Expand 10 after
2421 return key->HashForObject(object); 2421 return key->HashForObject(object);
2422 } 2422 }
2423 MUST_USE_RESULT static inline MaybeObject* AsObject(HashTableKey* key) { 2423 MUST_USE_RESULT static inline MaybeObject* AsObject(HashTableKey* key) {
2424 return key->AsObject(); 2424 return key->AsObject();
2425 } 2425 }
2426 2426
2427 static const int kPrefixSize = 0; 2427 static const int kPrefixSize = 0;
2428 static const int kEntrySize = 1; 2428 static const int kEntrySize = 1;
2429 }; 2429 };
2430 2430
2431 class SeqAsciiString;
2432
2431 // SymbolTable. 2433 // SymbolTable.
2432 // 2434 //
2433 // No special elements in the prefix and the element size is 1 2435 // No special elements in the prefix and the element size is 1
2434 // because only the symbol itself (the key) needs to be stored. 2436 // because only the symbol itself (the key) needs to be stored.
2435 class SymbolTable: public HashTable<SymbolTableShape, HashTableKey*> { 2437 class SymbolTable: public HashTable<SymbolTableShape, HashTableKey*> {
2436 public: 2438 public:
2437 // Find symbol in the symbol table. If it is not there yet, it is 2439 // Find symbol in the symbol table. If it is not there yet, it is
2438 // added. The return value is the symbol table which might have 2440 // added. The return value is the symbol table which might have
2439 // been enlarged. If the return value is not a failure, the symbol 2441 // been enlarged. If the return value is not a failure, the symbol
2440 // pointer *s is set to the symbol found. 2442 // pointer *s is set to the symbol found.
2441 MUST_USE_RESULT MaybeObject* LookupSymbol(Vector<const char> str, Object** s); 2443 MUST_USE_RESULT MaybeObject* LookupSymbol(Vector<const char> str, Object** s);
2442 MUST_USE_RESULT MaybeObject* LookupAsciiSymbol(Vector<const char> str, 2444 MUST_USE_RESULT MaybeObject* LookupAsciiSymbol(Vector<const char> str,
2443 Object** s); 2445 Object** s);
2446 MUST_USE_RESULT MaybeObject* LookupSubStringAsciiSymbol(
2447 Handle<SeqAsciiString> str,
2448 int from,
2449 int length,
2450 Object** s);
2444 MUST_USE_RESULT MaybeObject* LookupTwoByteSymbol(Vector<const uc16> str, 2451 MUST_USE_RESULT MaybeObject* LookupTwoByteSymbol(Vector<const uc16> str,
2445 Object** s); 2452 Object** s);
2446 MUST_USE_RESULT MaybeObject* LookupString(String* key, Object** s); 2453 MUST_USE_RESULT MaybeObject* LookupString(String* key, Object** s);
2447 2454
2448 // Looks up a symbol that is equal to the given string and returns 2455 // Looks up a symbol that is equal to the given string and returns
2449 // true if it is found, assigning the symbol to the given output 2456 // true if it is found, assigning the symbol to the given output
2450 // parameter. 2457 // parameter.
2451 bool LookupSymbolIfExists(String* str, String** symbol); 2458 bool LookupSymbolIfExists(String* str, String** symbol);
2452 bool LookupTwoCharsSymbolIfExists(uint32_t c1, uint32_t c2, String** symbol); 2459 bool LookupTwoCharsSymbolIfExists(uint32_t c1, uint32_t c2, String** symbol);
2453 2460
(...skipping 4321 matching lines...) Expand 10 before | Expand all | Expand 10 after
6775 } else { 6782 } else {
6776 value &= ~(1 << bit_position); 6783 value &= ~(1 << bit_position);
6777 } 6784 }
6778 return value; 6785 return value;
6779 } 6786 }
6780 }; 6787 };
6781 6788
6782 } } // namespace v8::internal 6789 } } // namespace v8::internal
6783 6790
6784 #endif // V8_OBJECTS_H_ 6791 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/json-parser.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698