Index: samples/lineprocessor.cc |
diff --git a/samples/lineprocessor.cc b/samples/lineprocessor.cc |
index 6549f4c260b803d89fc217853ac5775b799f5b75..b5b63675e593d30badcb021f3cf4e203963ceef9 100644 |
--- a/samples/lineprocessor.cc |
+++ b/samples/lineprocessor.cc |
@@ -98,13 +98,14 @@ enum MainCycleType { |
}; |
const char* ToCString(const v8::String::Utf8Value& value); |
-void ReportException(v8::TryCatch* handler); |
+void ReportException(v8::Isolate* isolate, v8::TryCatch* handler); |
v8::Handle<v8::String> ReadFile(const char* name); |
v8::Handle<v8::String> ReadLine(); |
v8::Handle<v8::Value> Print(const v8::Arguments& args); |
v8::Handle<v8::Value> ReadLine(const v8::Arguments& args); |
-bool RunCppCycle(v8::Handle<v8::Script> script, v8::Local<v8::Context> context, |
+bool RunCppCycle(v8::Handle<v8::Script> script, |
+ v8::Local<v8::Context> context, |
bool report_exceptions); |
@@ -132,7 +133,8 @@ void DispatchDebugMessages() { |
int RunMain(int argc, char* argv[]) { |
v8::V8::SetFlagsFromCommandLine(&argc, argv, true); |
- v8::HandleScope handle_scope; |
+ v8::Isolate* isolate = v8::Isolate::GetCurrent(); |
+ v8::HandleScope handle_scope(isolate); |
v8::Handle<v8::String> script_source(NULL); |
v8::Handle<v8::Value> script_name(NULL); |
@@ -213,9 +215,9 @@ int RunMain(int argc, char* argv[]) { |
#ifdef ENABLE_DEBUGGER_SUPPORT |
debug_message_context = |
- v8::Persistent<v8::Context>::New(context->GetIsolate(), context); |
+ v8::Persistent<v8::Context>::New(isolate, context); |
- v8::Locker locker(context->GetIsolate()); |
+ v8::Locker locker(isolate); |
if (support_callback) { |
v8::Debug::SetDebugMessageDispatchHandler(DispatchDebugMessages, true); |
@@ -236,7 +238,7 @@ int RunMain(int argc, char* argv[]) { |
if (script.IsEmpty()) { |
// Print errors that happened during compilation. |
if (report_exceptions) |
- ReportException(&try_catch); |
+ ReportException(isolate, &try_catch); |
return 1; |
} |
} |
@@ -247,13 +249,14 @@ int RunMain(int argc, char* argv[]) { |
script->Run(); |
if (try_catch.HasCaught()) { |
if (report_exceptions) |
- ReportException(&try_catch); |
+ ReportException(isolate, &try_catch); |
return 1; |
} |
} |
if (cycle_type == CycleInCpp) { |
- bool res = RunCppCycle(script, v8::Context::GetCurrent(), |
+ bool res = RunCppCycle(script, |
+ v8::Context::GetCurrent(), |
report_exceptions); |
return !res; |
} else { |
@@ -263,15 +266,16 @@ int RunMain(int argc, char* argv[]) { |
} |
-bool RunCppCycle(v8::Handle<v8::Script> script, v8::Local<v8::Context> context, |
+bool RunCppCycle(v8::Handle<v8::Script> script, |
+ v8::Local<v8::Context> context, |
bool report_exceptions) { |
+ v8::Isolate* isolate = context->GetIsolate(); |
#ifdef ENABLE_DEBUGGER_SUPPORT |
- v8::Locker lock(v8::Isolate::GetCurrent()); |
+ v8::Locker lock(isolate); |
#endif // ENABLE_DEBUGGER_SUPPORT |
v8::Handle<v8::String> fun_name = v8::String::New("ProcessLine"); |
- v8::Handle<v8::Value> process_val = |
- v8::Context::GetCurrent()->Global()->Get(fun_name); |
+ v8::Handle<v8::Value> process_val = context->Global()->Get(fun_name); |
// If there is no Process function, or if it is not a function, |
// bail out |
@@ -286,7 +290,7 @@ bool RunCppCycle(v8::Handle<v8::Script> script, v8::Local<v8::Context> context, |
while (!feof(stdin)) { |
- v8::HandleScope handle_scope; |
+ v8::HandleScope handle_scope(isolate); |
v8::Handle<v8::String> input_line = ReadLine(); |
if (input_line == v8::Undefined()) { |
@@ -303,7 +307,7 @@ bool RunCppCycle(v8::Handle<v8::Script> script, v8::Local<v8::Context> context, |
argc, argv); |
if (try_catch.HasCaught()) { |
if (report_exceptions) |
- ReportException(&try_catch); |
+ ReportException(isolate, &try_catch); |
return false; |
} |
} |
@@ -350,8 +354,8 @@ v8::Handle<v8::String> ReadFile(const char* name) { |
} |
-void ReportException(v8::TryCatch* try_catch) { |
- v8::HandleScope handle_scope; |
+void ReportException(v8::Isolate* isolate, v8::TryCatch* try_catch) { |
+ v8::HandleScope handle_scope(isolate); |
v8::String::Utf8Value exception(try_catch->Exception()); |
const char* exception_string = ToCString(exception); |
v8::Handle<v8::Message> message = try_catch->Message(); |
@@ -389,7 +393,7 @@ void ReportException(v8::TryCatch* try_catch) { |
v8::Handle<v8::Value> Print(const v8::Arguments& args) { |
bool first = true; |
for (int i = 0; i < args.Length(); i++) { |
- v8::HandleScope handle_scope; |
+ v8::HandleScope handle_scope(args.GetIsolate()); |
if (first) { |
first = false; |
} else { |