Revert "Revert "Merge to master: contention over isolate data slots""
authorTom Sepez <tsepez@chromium.org>
Fri, 25 Sep 2015 16:29:47 +0000 (09:29 -0700)
committerTom Sepez <tsepez@chromium.org>
Fri, 25 Sep 2015 16:29:47 +0000 (09:29 -0700)
commit163f59b9a0b019539e9a463ec183c964e7317d5b
tree45044e7ac308813d031282c4665a4ba67db2ca17
parent01c1e54a506329b36f87b0e37d3b419b70973342
Revert "Revert "Merge to master: contention over isolate data slots""

This reverts commit 3b4382a847b5a7439a3107512dbe54c317108579.
The difference between this CL and the one that failed is
fxjs_v8.cpp:271. In master, we pass the runtime information
as:
  v8::isolate -> v8::Context -> FXJS Runtime,

but in XFA:
  V8::Isolate -> PerIsolate struct -> FXJS Runtime.

The master way is more correct, in that FXJS_Runtime is 1:1
with v8 contexts and many:1 (in theory) with isolates.
It looks like the XFA branch missed a patch along the way.
I'll do that next.

Having made this change, the only data in the per-isolate
struct will be the ptr array (on master); it will also
include the XFA context (on XFA). I've kept the struct on
master for the sake of similarity.

R=thestig@chromium.org

Review URL: https://codereview.chromium.org/1365733003 .
fpdfsdk/include/jsapi/fxjs_v8.h
fpdfsdk/src/jsapi/fxjs_v8.cpp
fpdfsdk/src/jsapi/fxjs_v8_embeddertest.cpp