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 1744 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1755 capture_stack_trace_for_uncaught_exceptions_(false), | 1755 capture_stack_trace_for_uncaught_exceptions_(false), |
1756 stack_trace_for_uncaught_exceptions_frame_limit_(0), | 1756 stack_trace_for_uncaught_exceptions_frame_limit_(0), |
1757 stack_trace_for_uncaught_exceptions_options_(StackTrace::kOverview), | 1757 stack_trace_for_uncaught_exceptions_options_(StackTrace::kOverview), |
1758 transcendental_cache_(NULL), | 1758 transcendental_cache_(NULL), |
1759 memory_allocator_(NULL), | 1759 memory_allocator_(NULL), |
1760 keyed_lookup_cache_(NULL), | 1760 keyed_lookup_cache_(NULL), |
1761 context_slot_cache_(NULL), | 1761 context_slot_cache_(NULL), |
1762 descriptor_lookup_cache_(NULL), | 1762 descriptor_lookup_cache_(NULL), |
1763 handle_scope_implementer_(NULL), | 1763 handle_scope_implementer_(NULL), |
1764 unicode_cache_(NULL), | 1764 unicode_cache_(NULL), |
| 1765 runtime_zone_(this), |
1765 in_use_list_(0), | 1766 in_use_list_(0), |
1766 free_list_(0), | 1767 free_list_(0), |
1767 preallocated_storage_preallocated_(false), | 1768 preallocated_storage_preallocated_(false), |
1768 inner_pointer_to_code_cache_(NULL), | 1769 inner_pointer_to_code_cache_(NULL), |
1769 write_iterator_(NULL), | 1770 write_iterator_(NULL), |
1770 global_handles_(NULL), | 1771 global_handles_(NULL), |
1771 context_switcher_(NULL), | 1772 context_switcher_(NULL), |
1772 thread_manager_(NULL), | 1773 thread_manager_(NULL), |
1773 fp_stubs_generated_(false), | 1774 fp_stubs_generated_(false), |
1774 has_installed_extensions_(false), | 1775 has_installed_extensions_(false), |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1953 void Isolate::SetIsolateThreadLocals(Isolate* isolate, | 1954 void Isolate::SetIsolateThreadLocals(Isolate* isolate, |
1954 PerIsolateThreadData* data) { | 1955 PerIsolateThreadData* data) { |
1955 Thread::SetThreadLocal(isolate_key_, isolate); | 1956 Thread::SetThreadLocal(isolate_key_, isolate); |
1956 Thread::SetThreadLocal(per_isolate_thread_data_key_, data); | 1957 Thread::SetThreadLocal(per_isolate_thread_data_key_, data); |
1957 } | 1958 } |
1958 | 1959 |
1959 | 1960 |
1960 Isolate::~Isolate() { | 1961 Isolate::~Isolate() { |
1961 TRACE_ISOLATE(destructor); | 1962 TRACE_ISOLATE(destructor); |
1962 | 1963 |
| 1964 // Has to be called while counters_ are still alive |
| 1965 runtime_zone_.DeleteKeptSegment(); |
| 1966 |
1963 // The entry stack must be empty when we get here, | 1967 // The entry stack must be empty when we get here, |
1964 // except for the default isolate, where it can | 1968 // except for the default isolate, where it can |
1965 // still contain up to one entry stack item | 1969 // still contain up to one entry stack item |
1966 ASSERT(entry_stack_ == NULL || this == default_isolate_); | 1970 ASSERT(entry_stack_ == NULL || this == default_isolate_); |
1967 ASSERT(entry_stack_ == NULL || entry_stack_->previous_item == NULL); | 1971 ASSERT(entry_stack_ == NULL || entry_stack_->previous_item == NULL); |
1968 | 1972 |
1969 delete entry_stack_; | 1973 delete entry_stack_; |
1970 entry_stack_ = NULL; | 1974 entry_stack_ = NULL; |
1971 | 1975 |
1972 delete[] assembler_spare_buffer_; | 1976 delete[] assembler_spare_buffer_; |
(...skipping 524 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2497 | 2501 |
2498 #ifdef DEBUG | 2502 #ifdef DEBUG |
2499 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ | 2503 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ |
2500 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); | 2504 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); |
2501 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) | 2505 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) |
2502 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) | 2506 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) |
2503 #undef ISOLATE_FIELD_OFFSET | 2507 #undef ISOLATE_FIELD_OFFSET |
2504 #endif | 2508 #endif |
2505 | 2509 |
2506 } } // namespace v8::internal | 2510 } } // namespace v8::internal |
OLD | NEW |