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

Side by Side Diff: src/spaces.h

Issue 100337: Changed some int casts to intptr_t. (Closed)
Patch Set: Created 11 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
« src/objects.h ('K') | « src/objects-inl.h ('k') | no next file » | 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 921 matching lines...) Expand 10 before | Expand all | Expand 10 after
932 // Returns one past the end address of the space. 932 // Returns one past the end address of the space.
933 Address high() { return low() + capacity_; } 933 Address high() { return low() + capacity_; }
934 934
935 // Age mark accessors. 935 // Age mark accessors.
936 Address age_mark() { return age_mark_; } 936 Address age_mark() { return age_mark_; }
937 void set_age_mark(Address mark) { age_mark_ = mark; } 937 void set_age_mark(Address mark) { age_mark_ = mark; }
938 938
939 // True if the address is in the address range of this semispace (not 939 // True if the address is in the address range of this semispace (not
940 // necessarily below the allocation pointer). 940 // necessarily below the allocation pointer).
941 bool Contains(Address a) { 941 bool Contains(Address a) {
942 return (reinterpret_cast<uint32_t>(a) & address_mask_) 942 return (reinterpret_cast<uintptr_t>(a) & address_mask_)
943 == reinterpret_cast<uint32_t>(start_); 943 == reinterpret_cast<uintptr_t>(start_);
944 } 944 }
945 945
946 // True if the object is a heap object in the address range of this 946 // True if the object is a heap object in the address range of this
947 // semispace (not necessarily below the allocation pointer). 947 // semispace (not necessarily below the allocation pointer).
948 bool Contains(Object* o) { 948 bool Contains(Object* o) {
949 return (reinterpret_cast<uint32_t>(o) & object_mask_) == object_expected_; 949 return (reinterpret_cast<uintptr_t>(o) & object_mask_) == object_expected_;
950 } 950 }
951 951
952 // The offset of an address from the beginning of the space. 952 // The offset of an address from the beginning of the space.
953 int SpaceOffsetForAddress(Address addr) { return addr - low(); } 953 int SpaceOffsetForAddress(Address addr) { return addr - low(); }
954 954
955 // If we don't have this here then SemiSpace will be abstract. However 955 // If we don't have this here then SemiSpace will be abstract. However
956 // it should never be called. 956 // it should never be called.
957 virtual int Size() { 957 virtual int Size() {
958 UNREACHABLE(); 958 UNREACHABLE();
959 return 0; 959 return 0;
960 } 960 }
961 961
962 #ifdef DEBUG 962 #ifdef DEBUG
963 virtual void Print(); 963 virtual void Print();
964 virtual void Verify(); 964 virtual void Verify();
965 #endif 965 #endif
966 966
967 private: 967 private:
968 // The current and maximum capacity of the space. 968 // The current and maximum capacity of the space.
969 int capacity_; 969 int capacity_;
970 int maximum_capacity_; 970 int maximum_capacity_;
971 971
972 // The start address of the space. 972 // The start address of the space.
973 Address start_; 973 Address start_;
974 // Used to govern object promotion during mark-compact collection. 974 // Used to govern object promotion during mark-compact collection.
975 Address age_mark_; 975 Address age_mark_;
976 976
977 // Masks and comparison values to test for containment in this semispace. 977 // Masks and comparison values to test for containment in this semispace.
978 uint32_t address_mask_; 978 uintptr_t address_mask_;
979 uint32_t object_mask_; 979 uintptr_t object_mask_;
980 uint32_t object_expected_; 980 uintptr_t object_expected_;
981 981
982 public: 982 public:
983 TRACK_MEMORY("SemiSpace") 983 TRACK_MEMORY("SemiSpace")
984 }; 984 };
985 985
986 986
987 // A SemiSpaceIterator is an ObjectIterator that iterates over the active 987 // A SemiSpaceIterator is an ObjectIterator that iterates over the active
988 // semispace of the heap's new space. It iterates over the objects in the 988 // semispace of the heap's new space. It iterates over the objects in the
989 // semispace from a given start address (defaulting to the bottom of the 989 // semispace from a given start address (defaulting to the bottom of the
990 // semispace) to the top of the semispace. New objects allocated after the 990 // semispace) to the top of the semispace. New objects allocated after the
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
1056 // Flip the pair of spaces. 1056 // Flip the pair of spaces.
1057 void Flip(); 1057 void Flip();
1058 1058
1059 // Doubles the capacity of the semispaces. Assumes that they are not at 1059 // Doubles the capacity of the semispaces. Assumes that they are not at
1060 // their maximum capacity. Returns a flag indicating success or failure. 1060 // their maximum capacity. Returns a flag indicating success or failure.
1061 bool Double(); 1061 bool Double();
1062 1062
1063 // True if the address or object lies in the address range of either 1063 // True if the address or object lies in the address range of either
1064 // semispace (not necessarily below the allocation pointer). 1064 // semispace (not necessarily below the allocation pointer).
1065 bool Contains(Address a) { 1065 bool Contains(Address a) {
1066 return (reinterpret_cast<uint32_t>(a) & address_mask_) 1066 return (reinterpret_cast<uintptr_t>(a) & address_mask_)
1067 == reinterpret_cast<uint32_t>(start_); 1067 == reinterpret_cast<uintptr_t>(start_);
1068 } 1068 }
1069 bool Contains(Object* o) { 1069 bool Contains(Object* o) {
1070 return (reinterpret_cast<uint32_t>(o) & object_mask_) == object_expected_; 1070 return (reinterpret_cast<uintptr_t>(o) & object_mask_) == object_expected_;
1071 } 1071 }
1072 1072
1073 // Return the allocated bytes in the active semispace. 1073 // Return the allocated bytes in the active semispace.
1074 virtual int Size() { return top() - bottom(); } 1074 virtual int Size() { return top() - bottom(); }
1075 // Return the current capacity of a semispace. 1075 // Return the current capacity of a semispace.
1076 int Capacity() { return capacity_; } 1076 int Capacity() { return capacity_; }
1077 // Return the available bytes without growing in the active semispace. 1077 // Return the available bytes without growing in the active semispace.
1078 int Available() { return Capacity() - Size(); } 1078 int Available() { return Capacity() - Size(); }
1079 1079
1080 // Return the maximum capacity of a semispace. 1080 // Return the maximum capacity of a semispace.
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after
1694 1694
1695 private: 1695 private:
1696 LargeObjectChunk* current_; 1696 LargeObjectChunk* current_;
1697 HeapObjectCallback size_func_; 1697 HeapObjectCallback size_func_;
1698 }; 1698 };
1699 1699
1700 1700
1701 } } // namespace v8::internal 1701 } } // namespace v8::internal
1702 1702
1703 #endif // V8_SPACES_H_ 1703 #endif // V8_SPACES_H_
OLDNEW
« src/objects.h ('K') | « src/objects-inl.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698