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

Side by Side Diff: src/objects.h

Issue 8190: Revert changes 601 and 602. TBR (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 12 years, 1 month 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/mark-compact.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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-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 1023 matching lines...) Expand 10 before | Expand all | Expand 10 after
1034 inline bool IsOverflowed(); 1034 inline bool IsOverflowed();
1035 1035
1036 // Mutate this object's map pointer to indicate that the object is 1036 // Mutate this object's map pointer to indicate that the object is
1037 // overflowed. 1037 // overflowed.
1038 inline void SetOverflow(); 1038 inline void SetOverflow();
1039 1039
1040 // Mutate this object's map pointer to remove the indication that the 1040 // Mutate this object's map pointer to remove the indication that the
1041 // object is overflowed (ie, partially restore the map pointer). 1041 // object is overflowed (ie, partially restore the map pointer).
1042 inline void ClearOverflow(); 1042 inline void ClearOverflow();
1043 1043
1044 // Returns the field at offset in obj, as a read/write Object* reference. 1044 static inline Object* GetHeapObjectField(HeapObject* obj, int index);
1045 // Does no checking, and is safe to use during GC, while maps are invalid.
1046 // Does not update remembered sets, so should only be assigned to
1047 // during marking GC.
1048 static inline Object* &RawField(HeapObject* obj, int offset);
1049 1045
1050 // Casting. 1046 // Casting.
1051 static inline HeapObject* cast(Object* obj); 1047 static inline HeapObject* cast(Object* obj);
1052 1048
1053 // Return the write barrier mode for this. 1049 // Return the write barrier mode for this.
1054 inline WriteBarrierMode GetWriteBarrierMode(); 1050 inline WriteBarrierMode GetWriteBarrierMode();
1055 1051
1056 // Dispatched behavior. 1052 // Dispatched behavior.
1057 void HeapObjectShortPrint(StringStream* accumulator); 1053 void HeapObjectShortPrint(StringStream* accumulator);
1058 #ifdef DEBUG 1054 #ifdef DEBUG
(...skipping 1359 matching lines...) Expand 10 before | Expand all | Expand 10 after
2418 // Returns the found code or undefined if absent. 2414 // Returns the found code or undefined if absent.
2419 Object* FindInCodeCache(String* name, Code::Flags flags); 2415 Object* FindInCodeCache(String* name, Code::Flags flags);
2420 2416
2421 // Returns the non-negative index of the code object if it is in the 2417 // Returns the non-negative index of the code object if it is in the
2422 // cache and -1 otherwise. 2418 // cache and -1 otherwise.
2423 int IndexInCodeCache(Code* code); 2419 int IndexInCodeCache(Code* code);
2424 2420
2425 // Removes a code object from the code cache at the given index. 2421 // Removes a code object from the code cache at the given index.
2426 void RemoveFromCodeCache(int index); 2422 void RemoveFromCodeCache(int index);
2427 2423
2428 // For every transition in this map, makes the transition's
2429 // target's prototype pointer point back to this map.
2430 // This is undone in MarkCompactCollector::ClearNonLiveTransitions().
2431 void CreateBackPointers();
2432
2433 // Set all map transitions from this map to dead maps to null.
2434 // Also, restore the original prototype on the targets of these
2435 // transitions, so that we do not process this map again while
2436 // following back pointers.
2437 void ClearNonLiveTransitions(Object* real_prototype);
2438
2439 // Dispatched behavior. 2424 // Dispatched behavior.
2440 void MapIterateBody(ObjectVisitor* v); 2425 void MapIterateBody(ObjectVisitor* v);
2441 #ifdef DEBUG 2426 #ifdef DEBUG
2442 void MapPrint(); 2427 void MapPrint();
2443 void MapVerify(); 2428 void MapVerify();
2444 #endif 2429 #endif
2445 2430
2446 // Layout description. 2431 // Layout description.
2447 static const int kInstanceSizesOffset = HeapObject::kHeaderSize; 2432 static const int kInstanceSizesOffset = HeapObject::kHeaderSize;
2448 static const int kInstanceAttributesOffset = kInstanceSizesOffset + kIntSize; 2433 static const int kInstanceAttributesOffset = kInstanceSizesOffset + kIntSize;
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after
2813 // Forward declaration. 2798 // Forward declaration.
2814 class JSBuiltinsObject; 2799 class JSBuiltinsObject;
2815 2800
2816 // Common super class for JavaScript global objects and the special 2801 // Common super class for JavaScript global objects and the special
2817 // builtins global objects. 2802 // builtins global objects.
2818 class GlobalObject: public JSObject { 2803 class GlobalObject: public JSObject {
2819 public: 2804 public:
2820 // [builtins]: the object holding the runtime routines written in JS. 2805 // [builtins]: the object holding the runtime routines written in JS.
2821 DECL_ACCESSORS(builtins, JSBuiltinsObject) 2806 DECL_ACCESSORS(builtins, JSBuiltinsObject)
2822 2807
2823 // [global context]: the global context corresponding to this global object. 2808 // [global context]: the global context corresponding to this global objet.
2824 DECL_ACCESSORS(global_context, Context) 2809 DECL_ACCESSORS(global_context, Context)
2825 2810
2826 // [global receiver]: the global receiver object of the context 2811 // [global receiver]: the global receiver object of the context
2827 DECL_ACCESSORS(global_receiver, JSObject) 2812 DECL_ACCESSORS(global_receiver, JSObject)
2828 2813
2829 // Casting. 2814 // Casting.
2830 static inline GlobalObject* cast(Object* obj); 2815 static inline GlobalObject* cast(Object* obj);
2831 2816
2832 // Layout description. 2817 // Layout description.
2833 static const int kBuiltinsOffset = JSObject::kHeaderSize; 2818 static const int kBuiltinsOffset = JSObject::kHeaderSize;
(...skipping 1300 matching lines...) Expand 10 before | Expand all | Expand 10 after
4134 } else { 4119 } else {
4135 value &= ~(1 << bit_position); 4120 value &= ~(1 << bit_position);
4136 } 4121 }
4137 return value; 4122 return value;
4138 } 4123 }
4139 }; 4124 };
4140 4125
4141 } } // namespace v8::internal 4126 } } // namespace v8::internal
4142 4127
4143 #endif // V8_OBJECTS_H_ 4128 #endif // V8_OBJECTS_H_
OLDNEW
« no previous file with comments | « src/mark-compact.cc ('k') | src/objects.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698