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

Side by Side Diff: src/objects.h

Issue 22915007: Clear next map word when folding allocations into js arrays. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 3 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 5754 matching lines...) Expand 10 before | Expand all | Expand 10 after
5765 5765
5766 void SetEnumLength(int length) { 5766 void SetEnumLength(int length) {
5767 if (length != kInvalidEnumCache) { 5767 if (length != kInvalidEnumCache) {
5768 ASSERT(length >= 0); 5768 ASSERT(length >= 0);
5769 ASSERT(length == 0 || instance_descriptors()->HasEnumCache()); 5769 ASSERT(length == 0 || instance_descriptors()->HasEnumCache());
5770 ASSERT(length <= NumberOfOwnDescriptors()); 5770 ASSERT(length <= NumberOfOwnDescriptors());
5771 } 5771 }
5772 set_bit_field3(EnumLengthBits::update(bit_field3(), length)); 5772 set_bit_field3(EnumLengthBits::update(bit_field3(), length));
5773 } 5773 }
5774 5774
5775 inline bool CanTrackAllocationSite();
5776 inline bool owns_descriptors(); 5775 inline bool owns_descriptors();
5777 inline void set_owns_descriptors(bool is_shared); 5776 inline void set_owns_descriptors(bool is_shared);
5778 inline bool is_observed(); 5777 inline bool is_observed();
5779 inline void set_is_observed(bool is_observed); 5778 inline void set_is_observed(bool is_observed);
5780 inline void freeze(); 5779 inline void freeze();
5781 inline bool is_frozen(); 5780 inline bool is_frozen();
5782 inline void mark_unstable(); 5781 inline void mark_unstable();
5783 inline bool is_stable(); 5782 inline bool is_stable();
5784 inline void set_migration_target(bool value); 5783 inline void set_migration_target(bool value);
5785 inline bool is_migration_target(); 5784 inline bool is_migration_target();
(...skipping 2047 matching lines...) Expand 10 before | Expand all | Expand 10 after
7833 return transition_info()->IsJSArray(); 7832 return transition_info()->IsJSArray();
7834 } 7833 }
7835 7834
7836 DECLARE_PRINTER(AllocationSite) 7835 DECLARE_PRINTER(AllocationSite)
7837 DECLARE_VERIFIER(AllocationSite) 7836 DECLARE_VERIFIER(AllocationSite)
7838 7837
7839 static inline AllocationSite* cast(Object* obj); 7838 static inline AllocationSite* cast(Object* obj);
7840 static inline AllocationSiteMode GetMode( 7839 static inline AllocationSiteMode GetMode(
7841 ElementsKind boilerplate_elements_kind); 7840 ElementsKind boilerplate_elements_kind);
7842 static inline AllocationSiteMode GetMode(ElementsKind from, ElementsKind to); 7841 static inline AllocationSiteMode GetMode(ElementsKind from, ElementsKind to);
7842 static inline bool CanTrack(InstanceType type);
7843 7843
7844 static const int kTransitionInfoOffset = HeapObject::kHeaderSize; 7844 static const int kTransitionInfoOffset = HeapObject::kHeaderSize;
7845 static const int kWeakNextOffset = kTransitionInfoOffset + kPointerSize; 7845 static const int kWeakNextOffset = kTransitionInfoOffset + kPointerSize;
7846 static const int kSize = kWeakNextOffset + kPointerSize; 7846 static const int kSize = kWeakNextOffset + kPointerSize;
7847 7847
7848 typedef FixedBodyDescriptor<HeapObject::kHeaderSize, 7848 typedef FixedBodyDescriptor<HeapObject::kHeaderSize,
7849 kTransitionInfoOffset + kPointerSize, 7849 kTransitionInfoOffset + kPointerSize,
7850 kSize> BodyDescriptor; 7850 kSize> BodyDescriptor;
7851 7851
7852 private: 7852 private:
(...skipping 2333 matching lines...) Expand 10 before | Expand all | Expand 10 after
10186 } else { 10186 } else {
10187 value &= ~(1 << bit_position); 10187 value &= ~(1 << bit_position);
10188 } 10188 }
10189 return value; 10189 return value;
10190 } 10190 }
10191 }; 10191 };
10192 10192
10193 } } // namespace v8::internal 10193 } } // namespace v8::internal
10194 10194
10195 #endif // V8_OBJECTS_H_ 10195 #endif // V8_OBJECTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698