Commit 277b9081 authored by ager@chromium.org's avatar ager@chromium.org

Fix the process sample to actually dispose the contexts used for

processors.

Review URL: http://codereview.chromium.org/5302004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 4771d27e
......@@ -152,18 +152,16 @@ bool JsHttpRequestProcessor::Initialize(map<string, string>* opts,
Handle<ObjectTemplate> global = ObjectTemplate::New();
global->Set(String::New("log"), FunctionTemplate::New(LogCallback));
// Each processor gets its own context so different processors
// don't affect each other (ignore the first three lines).
Handle<Context> context = Context::New(NULL, global);
// Store the context in the processor object in a persistent handle,
// since we want the reference to remain after we return from this
// method.
context_ = Persistent<Context>::New(context);
// Each processor gets its own context so different processors don't
// affect each other. Context::New returns a persistent handle which
// is what we need for the reference to remain after we return from
// this method. That persistent handle has to be disposed in the
// destructor.
context_ = Context::New(NULL, global);
// Enter the new context so all the following operations take place
// within it.
Context::Scope context_scope(context);
Context::Scope context_scope(context_);
// Make the options mapping available within the context
if (!InstallMaps(opts, output))
......@@ -176,7 +174,7 @@ bool JsHttpRequestProcessor::Initialize(map<string, string>* opts,
// The script compiled and ran correctly. Now we fetch out the
// Process function from the global object.
Handle<String> process_name = String::New("Process");
Handle<Value> process_val = context->Global()->Get(process_name);
Handle<Value> process_val = context_->Global()->Get(process_name);
// If there is no Process function, or if it is not a function,
// bail out
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment