OLD | NEW |
1 // Copyright 2009 the V8 project authors. All rights reserved. | 1 // Copyright 2009 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 #include "v8.h" | 5 #include "v8.h" |
6 | 6 |
7 #include "api.h" | 7 #include "api.h" |
8 #include "global-handles.h" | 8 #include "global-handles.h" |
9 | 9 |
10 #include "vm-state-inl.h" | 10 #include "vm-state-inl.h" |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 return parameter_or_next_free_.next_free; | 200 return parameter_or_next_free_.next_free; |
201 } | 201 } |
202 void set_next_free(Node* value) { | 202 void set_next_free(Node* value) { |
203 ASSERT(state() == FREE); | 203 ASSERT(state() == FREE); |
204 parameter_or_next_free_.next_free = value; | 204 parameter_or_next_free_.next_free = value; |
205 } | 205 } |
206 | 206 |
207 void MakeWeak(void* parameter, WeakCallback weak_callback) { | 207 void MakeWeak(void* parameter, WeakCallback weak_callback) { |
208 ASSERT(weak_callback != NULL); | 208 ASSERT(weak_callback != NULL); |
209 ASSERT(state() != FREE); | 209 ASSERT(state() != FREE); |
| 210 CHECK(object_ != NULL); |
210 set_state(WEAK); | 211 set_state(WEAK); |
211 set_parameter(parameter); | 212 set_parameter(parameter); |
212 weak_callback_ = weak_callback; | 213 weak_callback_ = weak_callback; |
213 } | 214 } |
214 | 215 |
215 void* ClearWeakness() { | 216 void* ClearWeakness() { |
216 ASSERT(state() != FREE); | 217 ASSERT(state() != FREE); |
217 void* p = parameter(); | 218 void* p = parameter(); |
218 set_state(NORMAL); | 219 set_state(NORMAL); |
219 set_parameter(NULL); | 220 set_parameter(NULL); |
(...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1063 ASSERT_EQ(isolate->heap()->the_hole_value(), blocks_[block][offset]); | 1064 ASSERT_EQ(isolate->heap()->the_hole_value(), blocks_[block][offset]); |
1064 blocks_[block][offset] = object; | 1065 blocks_[block][offset] = object; |
1065 if (isolate->heap()->InNewSpace(object)) { | 1066 if (isolate->heap()->InNewSpace(object)) { |
1066 new_space_indices_.Add(size_); | 1067 new_space_indices_.Add(size_); |
1067 } | 1068 } |
1068 *index = size_++; | 1069 *index = size_++; |
1069 } | 1070 } |
1070 | 1071 |
1071 | 1072 |
1072 } } // namespace v8::internal | 1073 } } // namespace v8::internal |
OLD | NEW |