Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 87 | 87 |
| 88 | 88 |
| 89 #define ACCESSORS(holder, name, type, offset) \ | 89 #define ACCESSORS(holder, name, type, offset) \ |
| 90 type* holder::name() { return type::cast(READ_FIELD(this, offset)); } \ | 90 type* holder::name() { return type::cast(READ_FIELD(this, offset)); } \ |
| 91 void holder::set_##name(type* value, WriteBarrierMode mode) { \ | 91 void holder::set_##name(type* value, WriteBarrierMode mode) { \ |
| 92 WRITE_FIELD(this, offset, value); \ | 92 WRITE_FIELD(this, offset, value); \ |
| 93 CONDITIONAL_WRITE_BARRIER(GetHeap(), this, offset, value, mode); \ | 93 CONDITIONAL_WRITE_BARRIER(GetHeap(), this, offset, value, mode); \ |
| 94 } | 94 } |
| 95 | 95 |
| 96 | 96 |
| 97 // Getter that returns a raw Smi and setter that writes a raw Smi. | |
|
Michael Starzinger
2012/03/14 16:15:16
I would refer to them as "tagged Smi" instead of "
| |
| 98 #define ACCESSORS_TO_SMI(holder, name, offset) \ | |
| 99 Smi* holder::name() { return Smi::cast(READ_FIELD(this, offset)); } \ | |
| 100 void holder::set_##name(Smi* value, WriteBarrierMode mode) { \ | |
| 101 WRITE_FIELD(this, offset, value); \ | |
| 102 } | |
| 103 | |
| 104 | |
| 105 // Getter that returns a Smi as an int and writes an int as a Smi. | |
| 97 #define SMI_ACCESSORS(holder, name, offset) \ | 106 #define SMI_ACCESSORS(holder, name, offset) \ |
| 98 int holder::name() { \ | 107 int holder::name() { \ |
| 99 Object* value = READ_FIELD(this, offset); \ | 108 Object* value = READ_FIELD(this, offset); \ |
| 100 return Smi::cast(value)->value(); \ | 109 return Smi::cast(value)->value(); \ |
| 101 } \ | 110 } \ |
| 102 void holder::set_##name(int value) { \ | 111 void holder::set_##name(int value) { \ |
| 103 WRITE_FIELD(this, offset, Smi::FromInt(value)); \ | 112 WRITE_FIELD(this, offset, Smi::FromInt(value)); \ |
| 104 } | 113 } |
| 105 | 114 |
| 106 | 115 |
| (...skipping 3340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3447 ACCESSORS(GlobalObject, builtins, JSBuiltinsObject, kBuiltinsOffset) | 3456 ACCESSORS(GlobalObject, builtins, JSBuiltinsObject, kBuiltinsOffset) |
| 3448 ACCESSORS(GlobalObject, global_context, Context, kGlobalContextOffset) | 3457 ACCESSORS(GlobalObject, global_context, Context, kGlobalContextOffset) |
| 3449 ACCESSORS(GlobalObject, global_receiver, JSObject, kGlobalReceiverOffset) | 3458 ACCESSORS(GlobalObject, global_receiver, JSObject, kGlobalReceiverOffset) |
| 3450 | 3459 |
| 3451 ACCESSORS(JSGlobalProxy, context, Object, kContextOffset) | 3460 ACCESSORS(JSGlobalProxy, context, Object, kContextOffset) |
| 3452 | 3461 |
| 3453 ACCESSORS(AccessorInfo, getter, Object, kGetterOffset) | 3462 ACCESSORS(AccessorInfo, getter, Object, kGetterOffset) |
| 3454 ACCESSORS(AccessorInfo, setter, Object, kSetterOffset) | 3463 ACCESSORS(AccessorInfo, setter, Object, kSetterOffset) |
| 3455 ACCESSORS(AccessorInfo, data, Object, kDataOffset) | 3464 ACCESSORS(AccessorInfo, data, Object, kDataOffset) |
| 3456 ACCESSORS(AccessorInfo, name, Object, kNameOffset) | 3465 ACCESSORS(AccessorInfo, name, Object, kNameOffset) |
| 3457 ACCESSORS(AccessorInfo, flag, Smi, kFlagOffset) | 3466 ACCESSORS_TO_SMI(AccessorInfo, flag, kFlagOffset) |
| 3458 | 3467 |
| 3459 ACCESSORS(AccessorPair, getter, Object, kGetterOffset) | 3468 ACCESSORS(AccessorPair, getter, Object, kGetterOffset) |
| 3460 ACCESSORS(AccessorPair, setter, Object, kSetterOffset) | 3469 ACCESSORS(AccessorPair, setter, Object, kSetterOffset) |
| 3461 | 3470 |
| 3462 ACCESSORS(AccessCheckInfo, named_callback, Object, kNamedCallbackOffset) | 3471 ACCESSORS(AccessCheckInfo, named_callback, Object, kNamedCallbackOffset) |
| 3463 ACCESSORS(AccessCheckInfo, indexed_callback, Object, kIndexedCallbackOffset) | 3472 ACCESSORS(AccessCheckInfo, indexed_callback, Object, kIndexedCallbackOffset) |
| 3464 ACCESSORS(AccessCheckInfo, data, Object, kDataOffset) | 3473 ACCESSORS(AccessCheckInfo, data, Object, kDataOffset) |
| 3465 | 3474 |
| 3466 ACCESSORS(InterceptorInfo, getter, Object, kGetterOffset) | 3475 ACCESSORS(InterceptorInfo, getter, Object, kGetterOffset) |
| 3467 ACCESSORS(InterceptorInfo, setter, Object, kSetterOffset) | 3476 ACCESSORS(InterceptorInfo, setter, Object, kSetterOffset) |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 3488 ACCESSORS(FunctionTemplateInfo, indexed_property_handler, Object, | 3497 ACCESSORS(FunctionTemplateInfo, indexed_property_handler, Object, |
| 3489 kIndexedPropertyHandlerOffset) | 3498 kIndexedPropertyHandlerOffset) |
| 3490 ACCESSORS(FunctionTemplateInfo, instance_template, Object, | 3499 ACCESSORS(FunctionTemplateInfo, instance_template, Object, |
| 3491 kInstanceTemplateOffset) | 3500 kInstanceTemplateOffset) |
| 3492 ACCESSORS(FunctionTemplateInfo, class_name, Object, kClassNameOffset) | 3501 ACCESSORS(FunctionTemplateInfo, class_name, Object, kClassNameOffset) |
| 3493 ACCESSORS(FunctionTemplateInfo, signature, Object, kSignatureOffset) | 3502 ACCESSORS(FunctionTemplateInfo, signature, Object, kSignatureOffset) |
| 3494 ACCESSORS(FunctionTemplateInfo, instance_call_handler, Object, | 3503 ACCESSORS(FunctionTemplateInfo, instance_call_handler, Object, |
| 3495 kInstanceCallHandlerOffset) | 3504 kInstanceCallHandlerOffset) |
| 3496 ACCESSORS(FunctionTemplateInfo, access_check_info, Object, | 3505 ACCESSORS(FunctionTemplateInfo, access_check_info, Object, |
| 3497 kAccessCheckInfoOffset) | 3506 kAccessCheckInfoOffset) |
| 3498 ACCESSORS(FunctionTemplateInfo, flag, Smi, kFlagOffset) | 3507 ACCESSORS_TO_SMI(FunctionTemplateInfo, flag, kFlagOffset) |
| 3499 | 3508 |
| 3500 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset) | 3509 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset) |
| 3501 ACCESSORS(ObjectTemplateInfo, internal_field_count, Object, | 3510 ACCESSORS(ObjectTemplateInfo, internal_field_count, Object, |
| 3502 kInternalFieldCountOffset) | 3511 kInternalFieldCountOffset) |
| 3503 | 3512 |
| 3504 ACCESSORS(SignatureInfo, receiver, Object, kReceiverOffset) | 3513 ACCESSORS(SignatureInfo, receiver, Object, kReceiverOffset) |
| 3505 ACCESSORS(SignatureInfo, args, Object, kArgsOffset) | 3514 ACCESSORS(SignatureInfo, args, Object, kArgsOffset) |
| 3506 | 3515 |
| 3507 ACCESSORS(TypeSwitchInfo, types, Object, kTypesOffset) | 3516 ACCESSORS(TypeSwitchInfo, types, Object, kTypesOffset) |
| 3508 | 3517 |
| 3509 ACCESSORS(Script, source, Object, kSourceOffset) | 3518 ACCESSORS(Script, source, Object, kSourceOffset) |
| 3510 ACCESSORS(Script, name, Object, kNameOffset) | 3519 ACCESSORS(Script, name, Object, kNameOffset) |
| 3511 ACCESSORS(Script, id, Object, kIdOffset) | 3520 ACCESSORS(Script, id, Object, kIdOffset) |
| 3512 ACCESSORS(Script, line_offset, Smi, kLineOffsetOffset) | 3521 ACCESSORS_TO_SMI(Script, line_offset, kLineOffsetOffset) |
| 3513 ACCESSORS(Script, column_offset, Smi, kColumnOffsetOffset) | 3522 ACCESSORS_TO_SMI(Script, column_offset, kColumnOffsetOffset) |
| 3514 ACCESSORS(Script, data, Object, kDataOffset) | 3523 ACCESSORS(Script, data, Object, kDataOffset) |
| 3515 ACCESSORS(Script, context_data, Object, kContextOffset) | 3524 ACCESSORS(Script, context_data, Object, kContextOffset) |
| 3516 ACCESSORS(Script, wrapper, Foreign, kWrapperOffset) | 3525 ACCESSORS(Script, wrapper, Foreign, kWrapperOffset) |
| 3517 ACCESSORS(Script, type, Smi, kTypeOffset) | 3526 ACCESSORS_TO_SMI(Script, type, kTypeOffset) |
| 3518 ACCESSORS(Script, compilation_type, Smi, kCompilationTypeOffset) | 3527 ACCESSORS_TO_SMI(Script, compilation_type, kCompilationTypeOffset) |
| 3519 ACCESSORS(Script, line_ends, Object, kLineEndsOffset) | 3528 ACCESSORS(Script, line_ends, Object, kLineEndsOffset) |
| 3520 ACCESSORS(Script, eval_from_shared, Object, kEvalFromSharedOffset) | 3529 ACCESSORS(Script, eval_from_shared, Object, kEvalFromSharedOffset) |
| 3521 ACCESSORS(Script, eval_from_instructions_offset, Smi, | 3530 ACCESSORS_TO_SMI(Script, eval_from_instructions_offset, |
| 3522 kEvalFrominstructionsOffsetOffset) | 3531 kEvalFrominstructionsOffsetOffset) |
| 3523 | 3532 |
| 3524 #ifdef ENABLE_DEBUGGER_SUPPORT | 3533 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 3525 ACCESSORS(DebugInfo, shared, SharedFunctionInfo, kSharedFunctionInfoIndex) | 3534 ACCESSORS(DebugInfo, shared, SharedFunctionInfo, kSharedFunctionInfoIndex) |
| 3526 ACCESSORS(DebugInfo, original_code, Code, kOriginalCodeIndex) | 3535 ACCESSORS(DebugInfo, original_code, Code, kOriginalCodeIndex) |
| 3527 ACCESSORS(DebugInfo, code, Code, kPatchedCodeIndex) | 3536 ACCESSORS(DebugInfo, code, Code, kPatchedCodeIndex) |
| 3528 ACCESSORS(DebugInfo, break_points, FixedArray, kBreakPointsStateIndex) | 3537 ACCESSORS(DebugInfo, break_points, FixedArray, kBreakPointsStateIndex) |
| 3529 | 3538 |
| 3530 ACCESSORS(BreakPointInfo, code_position, Smi, kCodePositionIndex) | 3539 ACCESSORS_TO_SMI(BreakPointInfo, code_position, kCodePositionIndex) |
| 3531 ACCESSORS(BreakPointInfo, source_position, Smi, kSourcePositionIndex) | 3540 ACCESSORS_TO_SMI(BreakPointInfo, source_position, kSourcePositionIndex) |
| 3532 ACCESSORS(BreakPointInfo, statement_position, Smi, kStatementPositionIndex) | 3541 ACCESSORS_TO_SMI(BreakPointInfo, statement_position, kStatementPositionIndex) |
| 3533 ACCESSORS(BreakPointInfo, break_point_objects, Object, kBreakPointObjectsIndex) | 3542 ACCESSORS(BreakPointInfo, break_point_objects, Object, kBreakPointObjectsIndex) |
| 3534 #endif | 3543 #endif |
| 3535 | 3544 |
| 3536 ACCESSORS(SharedFunctionInfo, name, Object, kNameOffset) | 3545 ACCESSORS(SharedFunctionInfo, name, Object, kNameOffset) |
| 3537 ACCESSORS(SharedFunctionInfo, construct_stub, Code, kConstructStubOffset) | 3546 ACCESSORS(SharedFunctionInfo, construct_stub, Code, kConstructStubOffset) |
| 3538 ACCESSORS(SharedFunctionInfo, initial_map, Object, kInitialMapOffset) | 3547 ACCESSORS(SharedFunctionInfo, initial_map, Object, kInitialMapOffset) |
| 3539 ACCESSORS(SharedFunctionInfo, instance_class_name, Object, | 3548 ACCESSORS(SharedFunctionInfo, instance_class_name, Object, |
| 3540 kInstanceClassNameOffset) | 3549 kInstanceClassNameOffset) |
| 3541 ACCESSORS(SharedFunctionInfo, function_data, Object, kFunctionDataOffset) | 3550 ACCESSORS(SharedFunctionInfo, function_data, Object, kFunctionDataOffset) |
| 3542 ACCESSORS(SharedFunctionInfo, script, Object, kScriptOffset) | 3551 ACCESSORS(SharedFunctionInfo, script, Object, kScriptOffset) |
| (...skipping 1391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4934 | 4943 |
| 4935 template<int start_offset> | 4944 template<int start_offset> |
| 4936 void FlexibleBodyDescriptor<start_offset>::IterateBody(HeapObject* obj, | 4945 void FlexibleBodyDescriptor<start_offset>::IterateBody(HeapObject* obj, |
| 4937 int object_size, | 4946 int object_size, |
| 4938 ObjectVisitor* v) { | 4947 ObjectVisitor* v) { |
| 4939 v->VisitPointers(SLOT_ADDR(obj, start_offset), SLOT_ADDR(obj, object_size)); | 4948 v->VisitPointers(SLOT_ADDR(obj, start_offset), SLOT_ADDR(obj, object_size)); |
| 4940 } | 4949 } |
| 4941 | 4950 |
| 4942 #undef SLOT_ADDR | 4951 #undef SLOT_ADDR |
| 4943 | 4952 |
| 4944 | 4953 #undef TYPE_CHECKER |
| 4945 #undef CAST_ACCESSOR | 4954 #undef CAST_ACCESSOR |
| 4946 #undef INT_ACCESSORS | 4955 #undef INT_ACCESSORS |
| 4956 #undef ACCESSORS | |
| 4957 #undef ACCESSORS_TO_SMI | |
| 4947 #undef SMI_ACCESSORS | 4958 #undef SMI_ACCESSORS |
| 4948 #undef ACCESSORS | 4959 #undef BOOL_GETTER |
| 4960 #undef BOOL_ACCESSORS | |
| 4949 #undef FIELD_ADDR | 4961 #undef FIELD_ADDR |
| 4950 #undef READ_FIELD | 4962 #undef READ_FIELD |
| 4951 #undef WRITE_FIELD | 4963 #undef WRITE_FIELD |
| 4952 #undef WRITE_BARRIER | 4964 #undef WRITE_BARRIER |
| 4953 #undef CONDITIONAL_WRITE_BARRIER | 4965 #undef CONDITIONAL_WRITE_BARRIER |
| 4954 #undef READ_MEMADDR_FIELD | |
| 4955 #undef WRITE_MEMADDR_FIELD | |
| 4956 #undef READ_DOUBLE_FIELD | 4966 #undef READ_DOUBLE_FIELD |
| 4957 #undef WRITE_DOUBLE_FIELD | 4967 #undef WRITE_DOUBLE_FIELD |
| 4958 #undef READ_INT_FIELD | 4968 #undef READ_INT_FIELD |
| 4959 #undef WRITE_INT_FIELD | 4969 #undef WRITE_INT_FIELD |
| 4970 #undef READ_INTPTR_FIELD | |
| 4971 #undef WRITE_INTPTR_FIELD | |
| 4972 #undef READ_UINT32_FIELD | |
| 4973 #undef WRITE_UINT32_FIELD | |
| 4960 #undef READ_SHORT_FIELD | 4974 #undef READ_SHORT_FIELD |
| 4961 #undef WRITE_SHORT_FIELD | 4975 #undef WRITE_SHORT_FIELD |
| 4962 #undef READ_BYTE_FIELD | 4976 #undef READ_BYTE_FIELD |
| 4963 #undef WRITE_BYTE_FIELD | 4977 #undef WRITE_BYTE_FIELD |
| 4964 | 4978 |
| 4965 | 4979 |
| 4966 } } // namespace v8::internal | 4980 } } // namespace v8::internal |
| 4967 | 4981 |
| 4968 #endif // V8_OBJECTS_INL_H_ | 4982 #endif // V8_OBJECTS_INL_H_ |
| OLD | NEW |