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

Side by Side Diff: src/objects-inl.h

Issue 1058793002: Support for typed arrays added to Heap::RightTrimFixedArray(). (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressed comments Created 5 years, 8 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
« no previous file with comments | « src/objects.h ('k') | test/cctest/test-heap.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 // 4 //
5 // Review notes: 5 // Review notes:
6 // 6 //
7 // - The use of macros in these inline functions may seem superfluous 7 // - The use of macros in these inline functions may seem superfluous
8 // but it is absolutely needed to make sure gcc generates optimal 8 // but it is absolutely needed to make sure gcc generates optimal
9 // code. gcc is not happy when attempting to inline too deep. 9 // code. gcc is not happy when attempting to inline too deep.
10 // 10 //
(...skipping 4207 matching lines...) Expand 10 before | Expand all | Expand 10 after
4218 double* ptr = static_cast<double*>(external_pointer()); 4218 double* ptr = static_cast<double*>(external_pointer());
4219 ptr[index] = value; 4219 ptr[index] = value;
4220 } 4220 }
4221 4221
4222 4222
4223 void* FixedTypedArrayBase::DataPtr() { 4223 void* FixedTypedArrayBase::DataPtr() {
4224 return FIELD_ADDR(this, kDataOffset); 4224 return FIELD_ADDR(this, kDataOffset);
4225 } 4225 }
4226 4226
4227 4227
4228 int FixedTypedArrayBase::DataSize(InstanceType type) { 4228 int FixedTypedArrayBase::ElementSize(InstanceType type) {
4229 int element_size; 4229 int element_size;
4230 switch (type) { 4230 switch (type) {
4231 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \ 4231 #define TYPED_ARRAY_CASE(Type, type, TYPE, ctype, size) \
4232 case FIXED_##TYPE##_ARRAY_TYPE: \ 4232 case FIXED_##TYPE##_ARRAY_TYPE: \
4233 element_size = size; \ 4233 element_size = size; \
4234 break; 4234 break;
4235 4235
4236 TYPED_ARRAYS(TYPED_ARRAY_CASE) 4236 TYPED_ARRAYS(TYPED_ARRAY_CASE)
4237 #undef TYPED_ARRAY_CASE 4237 #undef TYPED_ARRAY_CASE
4238 default: 4238 default:
4239 UNREACHABLE(); 4239 UNREACHABLE();
4240 return 0; 4240 return 0;
4241 } 4241 }
4242 return length() * element_size; 4242 return element_size;
4243 } 4243 }
4244 4244
4245 4245
4246 int FixedTypedArrayBase::DataSize(InstanceType type) {
4247 return length() * ElementSize(type);
4248 }
4249
4250
4246 int FixedTypedArrayBase::DataSize() { 4251 int FixedTypedArrayBase::DataSize() {
4247 return DataSize(map()->instance_type()); 4252 return DataSize(map()->instance_type());
4248 } 4253 }
4249 4254
4250 4255
4251 int FixedTypedArrayBase::size() { 4256 int FixedTypedArrayBase::size() {
4252 return OBJECT_POINTER_ALIGN(kDataOffset + DataSize()); 4257 return OBJECT_POINTER_ALIGN(kDataOffset + DataSize());
4253 } 4258 }
4254 4259
4255 4260
4256 int FixedTypedArrayBase::TypedArraySize(InstanceType type) { 4261 int FixedTypedArrayBase::TypedArraySize(InstanceType type) {
4257 return OBJECT_POINTER_ALIGN(kDataOffset + DataSize(type)); 4262 return OBJECT_POINTER_ALIGN(kDataOffset + DataSize(type));
4258 } 4263 }
4259 4264
4260 4265
4266 int FixedTypedArrayBase::TypedArraySize(InstanceType type, int length) {
4267 return OBJECT_POINTER_ALIGN(kDataOffset + length * ElementSize(type));
4268 }
4269
4270
4261 uint8_t Uint8ArrayTraits::defaultValue() { return 0; } 4271 uint8_t Uint8ArrayTraits::defaultValue() { return 0; }
4262 4272
4263 4273
4264 uint8_t Uint8ClampedArrayTraits::defaultValue() { return 0; } 4274 uint8_t Uint8ClampedArrayTraits::defaultValue() { return 0; }
4265 4275
4266 4276
4267 int8_t Int8ArrayTraits::defaultValue() { return 0; } 4277 int8_t Int8ArrayTraits::defaultValue() { return 0; }
4268 4278
4269 4279
4270 uint16_t Uint16ArrayTraits::defaultValue() { return 0; } 4280 uint16_t Uint16ArrayTraits::defaultValue() { return 0; }
(...skipping 3247 matching lines...) Expand 10 before | Expand all | Expand 10 after
7518 #undef READ_SHORT_FIELD 7528 #undef READ_SHORT_FIELD
7519 #undef WRITE_SHORT_FIELD 7529 #undef WRITE_SHORT_FIELD
7520 #undef READ_BYTE_FIELD 7530 #undef READ_BYTE_FIELD
7521 #undef WRITE_BYTE_FIELD 7531 #undef WRITE_BYTE_FIELD
7522 #undef NOBARRIER_READ_BYTE_FIELD 7532 #undef NOBARRIER_READ_BYTE_FIELD
7523 #undef NOBARRIER_WRITE_BYTE_FIELD 7533 #undef NOBARRIER_WRITE_BYTE_FIELD
7524 7534
7525 } } // namespace v8::internal 7535 } } // namespace v8::internal
7526 7536
7527 #endif // V8_OBJECTS_INL_H_ 7537 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects.h ('k') | test/cctest/test-heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698