Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(316)

Side by Side Diff: src/debug.cc

Issue 15817014: remove most uses of raw handle constructors (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: stupid cast needed Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/d8-debug.cc ('k') | src/handles.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 652 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 HashMap::Clear(); 663 HashMap::Clear();
664 } 664 }
665 665
666 666
667 void ScriptCache::HandleWeakScript(v8::Isolate* isolate, 667 void ScriptCache::HandleWeakScript(v8::Isolate* isolate,
668 v8::Persistent<v8::Value>* obj, 668 v8::Persistent<v8::Value>* obj,
669 void* data) { 669 void* data) {
670 ScriptCache* script_cache = reinterpret_cast<ScriptCache*>(data); 670 ScriptCache* script_cache = reinterpret_cast<ScriptCache*>(data);
671 // Find the location of the global handle. 671 // Find the location of the global handle.
672 Script** location = 672 Script** location =
673 reinterpret_cast<Script**>(Utils::OpenHandle(**obj).location()); 673 reinterpret_cast<Script**>(Utils::OpenPersistent(*obj).location());
674 ASSERT((*location)->IsScript()); 674 ASSERT((*location)->IsScript());
675 675
676 // Remove the entry from the cache. 676 // Remove the entry from the cache.
677 int id = Smi::cast((*location)->id())->value(); 677 int id = Smi::cast((*location)->id())->value();
678 script_cache->Remove(reinterpret_cast<void*>(id), Hash(id)); 678 script_cache->Remove(reinterpret_cast<void*>(id), Hash(id));
679 script_cache->collected_scripts_.Add(id); 679 script_cache->collected_scripts_.Add(id);
680 680
681 // Clear the weak handle. 681 // Clear the weak handle.
682 obj->Dispose(isolate); 682 obj->Dispose(isolate);
683 } 683 }
(...skipping 2375 matching lines...) Expand 10 before | Expand all | Expand 10 after
3059 v8::TryCatch try_catch; 3059 v8::TryCatch try_catch;
3060 3060
3061 // DebugCommandProcessor goes here. 3061 // DebugCommandProcessor goes here.
3062 v8::Local<v8::Object> cmd_processor; 3062 v8::Local<v8::Object> cmd_processor;
3063 { 3063 {
3064 v8::Local<v8::Object> api_exec_state = 3064 v8::Local<v8::Object> api_exec_state =
3065 v8::Utils::ToLocal(Handle<JSObject>::cast(exec_state)); 3065 v8::Utils::ToLocal(Handle<JSObject>::cast(exec_state));
3066 v8::Local<v8::String> fun_name = 3066 v8::Local<v8::String> fun_name =
3067 v8::String::New("debugCommandProcessor"); 3067 v8::String::New("debugCommandProcessor");
3068 v8::Local<v8::Function> fun = 3068 v8::Local<v8::Function> fun =
3069 v8::Function::Cast(*api_exec_state->Get(fun_name)); 3069 v8::Local<v8::Function>::Cast(api_exec_state->Get(fun_name));
3070 3070
3071 v8::Handle<v8::Boolean> running = 3071 v8::Handle<v8::Boolean> running =
3072 auto_continue ? v8::True() : v8::False(); 3072 auto_continue ? v8::True() : v8::False();
3073 static const int kArgc = 1; 3073 static const int kArgc = 1;
3074 v8::Handle<Value> argv[kArgc] = { running }; 3074 v8::Handle<Value> argv[kArgc] = { running };
3075 cmd_processor = v8::Object::Cast(*fun->Call(api_exec_state, kArgc, argv)); 3075 cmd_processor = v8::Local<v8::Object>::Cast(
3076 fun->Call(api_exec_state, kArgc, argv));
3076 if (try_catch.HasCaught()) { 3077 if (try_catch.HasCaught()) {
3077 PrintLn(try_catch.Exception()); 3078 PrintLn(try_catch.Exception());
3078 return; 3079 return;
3079 } 3080 }
3080 } 3081 }
3081 3082
3082 bool running = auto_continue; 3083 bool running = auto_continue;
3083 3084
3084 // Process requests from the debugger. 3085 // Process requests from the debugger.
3085 while (true) { 3086 while (true) {
(...skipping 19 matching lines...) Expand all
3105 command.Dispose(); 3106 command.Dispose();
3106 return; 3107 return;
3107 } 3108 }
3108 3109
3109 // Invoke JavaScript to process the debug request. 3110 // Invoke JavaScript to process the debug request.
3110 v8::Local<v8::String> fun_name; 3111 v8::Local<v8::String> fun_name;
3111 v8::Local<v8::Function> fun; 3112 v8::Local<v8::Function> fun;
3112 v8::Local<v8::Value> request; 3113 v8::Local<v8::Value> request;
3113 v8::TryCatch try_catch; 3114 v8::TryCatch try_catch;
3114 fun_name = v8::String::New("processDebugRequest"); 3115 fun_name = v8::String::New("processDebugRequest");
3115 fun = v8::Function::Cast(*cmd_processor->Get(fun_name)); 3116 fun = v8::Local<v8::Function>::Cast(cmd_processor->Get(fun_name));
3116 3117
3117 request = v8::String::New(command.text().start(), 3118 request = v8::String::New(command.text().start(),
3118 command.text().length()); 3119 command.text().length());
3119 static const int kArgc = 1; 3120 static const int kArgc = 1;
3120 v8::Handle<Value> argv[kArgc] = { request }; 3121 v8::Handle<Value> argv[kArgc] = { request };
3121 v8::Local<v8::Value> response_val = fun->Call(cmd_processor, kArgc, argv); 3122 v8::Local<v8::Value> response_val = fun->Call(cmd_processor, kArgc, argv);
3122 3123
3123 // Get the response. 3124 // Get the response.
3124 v8::Local<v8::String> response; 3125 v8::Local<v8::String> response;
3125 if (!try_catch.HasCaught()) { 3126 if (!try_catch.HasCaught()) {
3126 // Get response string. 3127 // Get response string.
3127 if (!response_val->IsUndefined()) { 3128 if (!response_val->IsUndefined()) {
3128 response = v8::String::Cast(*response_val); 3129 response = v8::Local<v8::String>::Cast(response_val);
3129 } else { 3130 } else {
3130 response = v8::String::New(""); 3131 response = v8::String::New("");
3131 } 3132 }
3132 3133
3133 // Log the JSON request/response. 3134 // Log the JSON request/response.
3134 if (FLAG_trace_debug_json) { 3135 if (FLAG_trace_debug_json) {
3135 PrintLn(request); 3136 PrintLn(request);
3136 PrintLn(response); 3137 PrintLn(response);
3137 } 3138 }
3138 3139
3139 // Get the running state. 3140 // Get the running state.
3140 fun_name = v8::String::New("isRunning"); 3141 fun_name = v8::String::New("isRunning");
3141 fun = v8::Function::Cast(*cmd_processor->Get(fun_name)); 3142 fun = v8::Local<v8::Function>::Cast(cmd_processor->Get(fun_name));
3142 static const int kArgc = 1; 3143 static const int kArgc = 1;
3143 v8::Handle<Value> argv[kArgc] = { response }; 3144 v8::Handle<Value> argv[kArgc] = { response };
3144 v8::Local<v8::Value> running_val = fun->Call(cmd_processor, kArgc, argv); 3145 v8::Local<v8::Value> running_val = fun->Call(cmd_processor, kArgc, argv);
3145 if (!try_catch.HasCaught()) { 3146 if (!try_catch.HasCaught()) {
3146 running = running_val->ToBoolean()->Value(); 3147 running = running_val->ToBoolean()->Value();
3147 } 3148 }
3148 } else { 3149 } else {
3149 // In case of failure the result text is the exception text. 3150 // In case of failure the result text is the exception text.
3150 response = try_catch.Exception()->ToString(); 3151 response = try_catch.Exception()->ToString();
3151 } 3152 }
(...skipping 647 matching lines...) Expand 10 before | Expand all | Expand 10 after
3799 { 3800 {
3800 Locker locker(reinterpret_cast<v8::Isolate*>(isolate_)); 3801 Locker locker(reinterpret_cast<v8::Isolate*>(isolate_));
3801 isolate_->debugger()->CallMessageDispatchHandler(); 3802 isolate_->debugger()->CallMessageDispatchHandler();
3802 } 3803 }
3803 } 3804 }
3804 } 3805 }
3805 3806
3806 #endif // ENABLE_DEBUGGER_SUPPORT 3807 #endif // ENABLE_DEBUGGER_SUPPORT
3807 3808
3808 } } // namespace v8::internal 3809 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/d8-debug.cc ('k') | src/handles.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698