| 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 21 matching lines...) Expand all Loading... |
| 32 #include "allocation-inl.h" | 32 #include "allocation-inl.h" |
| 33 #include "ast.h" | 33 #include "ast.h" |
| 34 #include "bootstrapper.h" | 34 #include "bootstrapper.h" |
| 35 #include "codegen.h" | 35 #include "codegen.h" |
| 36 #include "compilation-cache.h" | 36 #include "compilation-cache.h" |
| 37 #include "cpu-profiler.h" | 37 #include "cpu-profiler.h" |
| 38 #include "debug.h" | 38 #include "debug.h" |
| 39 #include "deoptimizer.h" | 39 #include "deoptimizer.h" |
| 40 #include "heap-profiler.h" | 40 #include "heap-profiler.h" |
| 41 #include "hydrogen.h" | 41 #include "hydrogen.h" |
| 42 #include "isolate.h" | 42 #include "isolate-inl.h" |
| 43 #include "lithium-allocator.h" | 43 #include "lithium-allocator.h" |
| 44 #include "log.h" | 44 #include "log.h" |
| 45 #include "marking-thread.h" | 45 #include "marking-thread.h" |
| 46 #include "messages.h" | 46 #include "messages.h" |
| 47 #include "platform.h" | 47 #include "platform.h" |
| 48 #include "regexp-stack.h" | 48 #include "regexp-stack.h" |
| 49 #include "runtime-profiler.h" | 49 #include "runtime-profiler.h" |
| 50 #include "sampler.h" | 50 #include "sampler.h" |
| 51 #include "scopeinfo.h" | 51 #include "scopeinfo.h" |
| 52 #include "serialize.h" | 52 #include "serialize.h" |
| 53 #include "simulator.h" | 53 #include "simulator.h" |
| 54 #include "spaces.h" | 54 #include "spaces.h" |
| 55 #include "stub-cache.h" | 55 #include "stub-cache.h" |
| 56 #include "sweeper-thread.h" | 56 #include "sweeper-thread.h" |
| 57 #include "utils/random-number-generator.h" |
| 57 #include "version.h" | 58 #include "version.h" |
| 58 #include "vm-state-inl.h" | 59 #include "vm-state-inl.h" |
| 59 | 60 |
| 60 | 61 |
| 61 namespace v8 { | 62 namespace v8 { |
| 62 namespace internal { | 63 namespace internal { |
| 63 | 64 |
| 64 Atomic32 ThreadId::highest_thread_id_ = 0; | 65 Atomic32 ThreadId::highest_thread_id_ = 0; |
| 65 | 66 |
| 66 int ThreadId::AllocateThreadId() { | 67 int ThreadId::AllocateThreadId() { |
| (...skipping 793 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 860 } else { | 861 } else { |
| 861 allocator = preallocated_message_space_; | 862 allocator = preallocated_message_space_; |
| 862 } | 863 } |
| 863 | 864 |
| 864 StringStream::ClearMentionedObjectCache(this); | 865 StringStream::ClearMentionedObjectCache(this); |
| 865 StringStream accumulator(allocator); | 866 StringStream accumulator(allocator); |
| 866 incomplete_message_ = &accumulator; | 867 incomplete_message_ = &accumulator; |
| 867 PrintStack(&accumulator); | 868 PrintStack(&accumulator); |
| 868 accumulator.OutputToFile(out); | 869 accumulator.OutputToFile(out); |
| 869 InitializeLoggingAndCounters(); | 870 InitializeLoggingAndCounters(); |
| 870 accumulator.Log(); | 871 accumulator.Log(this); |
| 871 incomplete_message_ = NULL; | 872 incomplete_message_ = NULL; |
| 872 stack_trace_nesting_level_ = 0; | 873 stack_trace_nesting_level_ = 0; |
| 873 if (preallocated_message_space_ == NULL) { | 874 if (preallocated_message_space_ == NULL) { |
| 874 // Remove the HeapStringAllocator created above. | 875 // Remove the HeapStringAllocator created above. |
| 875 delete allocator; | 876 delete allocator; |
| 876 } | 877 } |
| 877 } else if (stack_trace_nesting_level_ == 1) { | 878 } else if (stack_trace_nesting_level_ == 1) { |
| 878 stack_trace_nesting_level_++; | 879 stack_trace_nesting_level_++; |
| 879 OS::PrintError( | 880 OS::PrintError( |
| 880 "\n\nAttempt to print stack while printing stack (double fault)\n"); | 881 "\n\nAttempt to print stack while printing stack (double fault)\n"); |
| (...skipping 888 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1769 global_handles_(NULL), | 1770 global_handles_(NULL), |
| 1770 eternal_handles_(NULL), | 1771 eternal_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), |
| 1775 string_tracker_(NULL), | 1776 string_tracker_(NULL), |
| 1776 regexp_stack_(NULL), | 1777 regexp_stack_(NULL), |
| 1777 date_cache_(NULL), | 1778 date_cache_(NULL), |
| 1778 code_stub_interface_descriptors_(NULL), | 1779 code_stub_interface_descriptors_(NULL), |
| 1780 // TODO(bmeurer) Initialized lazily because it depends on flags; can |
| 1781 // be fixed once the default isolate cleanup is done. |
| 1782 random_number_generator_(NULL), |
| 1783 is_memory_constrained_(false), |
| 1779 has_fatal_error_(false), | 1784 has_fatal_error_(false), |
| 1780 use_crankshaft_(true), | 1785 use_crankshaft_(true), |
| 1781 initialized_from_snapshot_(false), | 1786 initialized_from_snapshot_(false), |
| 1782 cpu_profiler_(NULL), | 1787 cpu_profiler_(NULL), |
| 1783 heap_profiler_(NULL), | 1788 heap_profiler_(NULL), |
| 1784 function_entry_hook_(NULL), | 1789 function_entry_hook_(NULL), |
| 1785 deferred_handles_head_(NULL), | 1790 deferred_handles_head_(NULL), |
| 1786 optimizing_compiler_thread_(this), | 1791 optimizing_compiler_thread_(this), |
| 1787 marking_thread_(NULL), | 1792 marking_thread_(NULL), |
| 1788 sweeper_thread_(NULL), | 1793 sweeper_thread_(NULL), |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2045 global_handles_ = NULL; | 2050 global_handles_ = NULL; |
| 2046 delete eternal_handles_; | 2051 delete eternal_handles_; |
| 2047 eternal_handles_ = NULL; | 2052 eternal_handles_ = NULL; |
| 2048 | 2053 |
| 2049 delete string_stream_debug_object_cache_; | 2054 delete string_stream_debug_object_cache_; |
| 2050 string_stream_debug_object_cache_ = NULL; | 2055 string_stream_debug_object_cache_ = NULL; |
| 2051 | 2056 |
| 2052 delete external_reference_table_; | 2057 delete external_reference_table_; |
| 2053 external_reference_table_ = NULL; | 2058 external_reference_table_ = NULL; |
| 2054 | 2059 |
| 2060 delete random_number_generator_; |
| 2061 random_number_generator_ = NULL; |
| 2062 |
| 2055 #ifdef ENABLE_DEBUGGER_SUPPORT | 2063 #ifdef ENABLE_DEBUGGER_SUPPORT |
| 2056 delete debugger_; | 2064 delete debugger_; |
| 2057 debugger_ = NULL; | 2065 debugger_ = NULL; |
| 2058 delete debug_; | 2066 delete debug_; |
| 2059 debug_ = NULL; | 2067 debug_ = NULL; |
| 2060 #endif | 2068 #endif |
| 2061 } | 2069 } |
| 2062 | 2070 |
| 2063 | 2071 |
| 2064 void Isolate::InitializeThreadLocal() { | 2072 void Isolate::InitializeThreadLocal() { |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2518 | 2526 |
| 2519 #ifdef DEBUG | 2527 #ifdef DEBUG |
| 2520 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ | 2528 #define ISOLATE_FIELD_OFFSET(type, name, ignored) \ |
| 2521 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); | 2529 const intptr_t Isolate::name##_debug_offset_ = OFFSET_OF(Isolate, name##_); |
| 2522 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) | 2530 ISOLATE_INIT_LIST(ISOLATE_FIELD_OFFSET) |
| 2523 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) | 2531 ISOLATE_INIT_ARRAY_LIST(ISOLATE_FIELD_OFFSET) |
| 2524 #undef ISOLATE_FIELD_OFFSET | 2532 #undef ISOLATE_FIELD_OFFSET |
| 2525 #endif | 2533 #endif |
| 2526 | 2534 |
| 2527 } } // namespace v8::internal | 2535 } } // namespace v8::internal |
| OLD | NEW |