OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/object.h" | 5 #include "vm/object.h" |
6 | 6 |
7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
10 #include "vm/bigint_operations.h" | 10 #include "vm/bigint_operations.h" |
(...skipping 1416 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1427 void Class::set_signature_function(const Function& value) const { | 1427 void Class::set_signature_function(const Function& value) const { |
1428 ASSERT(value.IsClosureFunction() || value.IsSignatureFunction()); | 1428 ASSERT(value.IsClosureFunction() || value.IsSignatureFunction()); |
1429 StorePointer(&raw_ptr()->signature_function_, value.raw()); | 1429 StorePointer(&raw_ptr()->signature_function_, value.raw()); |
1430 } | 1430 } |
1431 | 1431 |
1432 | 1432 |
1433 void Class::set_class_state(RawClass::ClassState state) const { | 1433 void Class::set_class_state(RawClass::ClassState state) const { |
1434 ASSERT((state == RawClass::kAllocated) || | 1434 ASSERT((state == RawClass::kAllocated) || |
1435 (state == RawClass::kPreFinalized) || | 1435 (state == RawClass::kPreFinalized) || |
1436 (state == RawClass::kFinalized)); | 1436 (state == RawClass::kFinalized)); |
1437 uword bits = raw_ptr()->state_bits_; | 1437 raw_ptr()->state_bits_ = static_cast<uint8_t>( |
1438 raw_ptr()->state_bits_ = StateBits::update(state, bits); | 1438 StateBits::update(state, raw_ptr()->state_bits_)); |
1439 } | 1439 } |
1440 | 1440 |
1441 | 1441 |
1442 void Class::set_state_bits(uint8_t bits) const { | 1442 void Class::set_state_bits(uint8_t bits) const { |
1443 raw_ptr()->state_bits_ = bits; | 1443 raw_ptr()->state_bits_ = bits; |
1444 } | 1444 } |
1445 | 1445 |
1446 | 1446 |
1447 void Class::set_library(const Library& value) const { | 1447 void Class::set_library(const Library& value) const { |
1448 StorePointer(&raw_ptr()->library_, value.raw()); | 1448 StorePointer(&raw_ptr()->library_, value.raw()); |
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1886 } | 1886 } |
1887 | 1887 |
1888 | 1888 |
1889 void Class::set_token_pos(intptr_t token_pos) const { | 1889 void Class::set_token_pos(intptr_t token_pos) const { |
1890 ASSERT(token_pos >= 0); | 1890 ASSERT(token_pos >= 0); |
1891 raw_ptr()->token_pos_ = token_pos; | 1891 raw_ptr()->token_pos_ = token_pos; |
1892 } | 1892 } |
1893 | 1893 |
1894 | 1894 |
1895 void Class::set_is_interface() const { | 1895 void Class::set_is_interface() const { |
1896 uword bits = raw_ptr()->state_bits_; | 1896 raw_ptr()->state_bits_ = static_cast<uint8_t>( |
1897 raw_ptr()->state_bits_ = InterfaceBit::update(true, bits); | 1897 InterfaceBit::update(true, raw_ptr()->state_bits_)); |
1898 } | 1898 } |
1899 | 1899 |
1900 void Class::set_is_abstract() const { | 1900 void Class::set_is_abstract() const { |
1901 uword bits = raw_ptr()->state_bits_; | 1901 raw_ptr()->state_bits_ = static_cast<uint8_t>( |
1902 raw_ptr()->state_bits_ = AbstractBit::update(true, bits); | 1902 AbstractBit::update(true, raw_ptr()->state_bits_)); |
1903 } | 1903 } |
1904 | 1904 |
1905 | 1905 |
1906 void Class::set_is_const() const { | 1906 void Class::set_is_const() const { |
1907 uword bits = raw_ptr()->state_bits_; | 1907 raw_ptr()->state_bits_ = static_cast<uint8_t>( |
1908 raw_ptr()->state_bits_ = ConstBit::update(true, bits); | 1908 ConstBit::update(true, raw_ptr()->state_bits_)); |
1909 } | 1909 } |
1910 | 1910 |
1911 | 1911 |
1912 void Class::set_is_finalized() const { | 1912 void Class::set_is_finalized() const { |
1913 ASSERT(!is_finalized()); | 1913 ASSERT(!is_finalized()); |
1914 uword bits = raw_ptr()->state_bits_; | 1914 raw_ptr()->state_bits_ = static_cast<uint8_t>( |
1915 raw_ptr()->state_bits_ = StateBits::update(RawClass::kFinalized, bits); | 1915 StateBits::update(RawClass::kFinalized, raw_ptr()->state_bits_)); |
1916 } | 1916 } |
1917 | 1917 |
1918 | 1918 |
1919 void Class::set_is_prefinalized() const { | 1919 void Class::set_is_prefinalized() const { |
1920 ASSERT(!is_finalized()); | 1920 ASSERT(!is_finalized()); |
1921 uword bits = raw_ptr()->state_bits_; | 1921 raw_ptr()->state_bits_ = static_cast<uint8_t>( |
1922 raw_ptr()->state_bits_ = StateBits::update(RawClass::kPreFinalized, bits); | 1922 StateBits::update(RawClass::kPreFinalized, raw_ptr()->state_bits_)); |
1923 } | 1923 } |
1924 | 1924 |
1925 | 1925 |
1926 void Class::set_interfaces(const Array& value) const { | 1926 void Class::set_interfaces(const Array& value) const { |
1927 // Verification and resolving of interfaces occurs in finalizer. | 1927 // Verification and resolving of interfaces occurs in finalizer. |
1928 ASSERT(!value.IsNull()); | 1928 ASSERT(!value.IsNull()); |
1929 StorePointer(&raw_ptr()->interfaces_, value.raw()); | 1929 StorePointer(&raw_ptr()->interfaces_, value.raw()); |
1930 } | 1930 } |
1931 | 1931 |
1932 | 1932 |
(...skipping 2070 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4003 parameter_names.SetAt(index, value); | 4003 parameter_names.SetAt(index, value); |
4004 } | 4004 } |
4005 | 4005 |
4006 | 4006 |
4007 void Function::set_parameter_names(const Array& value) const { | 4007 void Function::set_parameter_names(const Array& value) const { |
4008 StorePointer(&raw_ptr()->parameter_names_, value.raw()); | 4008 StorePointer(&raw_ptr()->parameter_names_, value.raw()); |
4009 } | 4009 } |
4010 | 4010 |
4011 | 4011 |
4012 void Function::set_kind(RawFunction::Kind value) const { | 4012 void Function::set_kind(RawFunction::Kind value) const { |
4013 uword bits = raw_ptr()->kind_tag_; | 4013 set_kind_tag(KindBits::update(value, raw_ptr()->kind_tag_)); |
4014 raw_ptr()->kind_tag_ = KindBits::update(value, bits); | |
4015 } | 4014 } |
4016 | 4015 |
4017 | 4016 |
4018 void Function::set_is_static(bool value) const { | 4017 void Function::set_is_static(bool value) const { |
4019 uword bits = raw_ptr()->kind_tag_; | 4018 set_kind_tag(StaticBit::update(value, raw_ptr()->kind_tag_)); |
4020 raw_ptr()->kind_tag_ = StaticBit::update(value, bits); | |
4021 } | 4019 } |
4022 | 4020 |
4023 | 4021 |
4024 void Function::set_is_const(bool value) const { | 4022 void Function::set_is_const(bool value) const { |
4025 uword bits = raw_ptr()->kind_tag_; | 4023 set_kind_tag(ConstBit::update(value, raw_ptr()->kind_tag_)); |
4026 raw_ptr()->kind_tag_ = ConstBit::update(value, bits); | |
4027 } | 4024 } |
4028 | 4025 |
4029 | 4026 |
4030 void Function::set_is_external(bool value) const { | 4027 void Function::set_is_external(bool value) const { |
4031 uword bits = raw_ptr()->kind_tag_; | 4028 set_kind_tag(ExternalBit::update(value, raw_ptr()->kind_tag_)); |
4032 raw_ptr()->kind_tag_ = ExternalBit::update(value, bits); | |
4033 } | 4029 } |
4034 | 4030 |
4035 | 4031 |
4036 void Function::set_token_pos(intptr_t value) const { | 4032 void Function::set_token_pos(intptr_t value) const { |
4037 ASSERT(value >= 0); | 4033 ASSERT(value >= 0); |
4038 raw_ptr()->token_pos_ = value; | 4034 raw_ptr()->token_pos_ = value; |
4039 } | 4035 } |
4040 | 4036 |
4041 | 4037 |
4042 void Function::set_kind_tag(intptr_t value) const { | 4038 void Function::set_kind_tag(intptr_t value) const { |
4043 raw_ptr()->kind_tag_ = value; | 4039 raw_ptr()->kind_tag_ = static_cast<uint16_t>(value); |
4044 } | 4040 } |
4045 | 4041 |
4046 | 4042 |
4047 void Function::set_num_fixed_parameters(intptr_t value) const { | 4043 void Function::set_num_fixed_parameters(intptr_t value) const { |
4048 ASSERT(value >= 0); | 4044 ASSERT(value >= 0); |
4049 ASSERT(Utils::IsInt(16, value)); | 4045 ASSERT(Utils::IsInt(16, value)); |
4050 raw_ptr()->num_fixed_parameters_ = static_cast<int16_t>(value); | 4046 raw_ptr()->num_fixed_parameters_ = static_cast<int16_t>(value); |
4051 } | 4047 } |
4052 | 4048 |
4053 | 4049 |
(...skipping 14 matching lines...) Expand all Loading... |
4068 | 4064 |
4069 | 4065 |
4070 bool Function::is_optimizable() const { | 4066 bool Function::is_optimizable() const { |
4071 return OptimizableBit::decode(raw_ptr()->kind_tag_) && | 4067 return OptimizableBit::decode(raw_ptr()->kind_tag_) && |
4072 (script() != Script::null()) && | 4068 (script() != Script::null()) && |
4073 !is_native(); | 4069 !is_native(); |
4074 } | 4070 } |
4075 | 4071 |
4076 | 4072 |
4077 void Function::set_is_optimizable(bool value) const { | 4073 void Function::set_is_optimizable(bool value) const { |
4078 uword bits = raw_ptr()->kind_tag_; | 4074 set_kind_tag(OptimizableBit::update(value, raw_ptr()->kind_tag_)); |
4079 raw_ptr()->kind_tag_ = OptimizableBit::update(value, bits); | |
4080 } | 4075 } |
4081 | 4076 |
4082 | 4077 |
4083 void Function::set_has_finally(bool value) const { | 4078 void Function::set_has_finally(bool value) const { |
4084 uword bits = raw_ptr()->kind_tag_; | 4079 set_kind_tag(HasFinallyBit::update(value, raw_ptr()->kind_tag_)); |
4085 raw_ptr()->kind_tag_ = HasFinallyBit::update(value, bits); | |
4086 } | 4080 } |
4087 | 4081 |
4088 | 4082 |
4089 void Function::set_is_native(bool value) const { | 4083 void Function::set_is_native(bool value) const { |
4090 uword bits = raw_ptr()->kind_tag_; | 4084 set_kind_tag(NativeBit::update(value, raw_ptr()->kind_tag_)); |
4091 raw_ptr()->kind_tag_ = NativeBit::update(value, bits); | |
4092 } | 4085 } |
4093 | 4086 |
4094 | 4087 |
4095 void Function::set_is_abstract(bool value) const { | 4088 void Function::set_is_abstract(bool value) const { |
4096 uword bits = raw_ptr()->kind_tag_; | 4089 set_kind_tag(AbstractBit::update(value, raw_ptr()->kind_tag_)); |
4097 raw_ptr()->kind_tag_ = AbstractBit::update(value, bits); | |
4098 } | 4090 } |
4099 | 4091 |
4100 | 4092 |
4101 intptr_t Function::NumParameters() const { | 4093 intptr_t Function::NumParameters() const { |
4102 return num_fixed_parameters() + NumOptionalParameters(); | 4094 return num_fixed_parameters() + NumOptionalParameters(); |
4103 } | 4095 } |
4104 | 4096 |
4105 | 4097 |
4106 intptr_t Function::NumImplicitParameters() const { | 4098 intptr_t Function::NumImplicitParameters() const { |
4107 if (kind() == RawFunction::kConstructor) { | 4099 if (kind() == RawFunction::kConstructor) { |
(...skipping 7726 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11834 } | 11826 } |
11835 return result.raw(); | 11827 return result.raw(); |
11836 } | 11828 } |
11837 | 11829 |
11838 | 11830 |
11839 const char* WeakProperty::ToCString() const { | 11831 const char* WeakProperty::ToCString() const { |
11840 return "_WeakProperty"; | 11832 return "_WeakProperty"; |
11841 } | 11833 } |
11842 | 11834 |
11843 } // namespace dart | 11835 } // namespace dart |
OLD | NEW |