Reviewers: Lasse Reichstein,
Description:
Allow construction of x64 Assembler with a NULL Isolate.
BUG=
TEST=
Please review this at http://codereview.chromium.org/6771049/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files:
M src/x64/assembler-x64.cc
M src/x64/codegen-x64.cc
Index: src/x64/assembler-x64.cc
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
index
b13fbe852514890c10bd16d59c8e89af297e40ab..9c0341d095d4be43c01c254e92f9329beef8c94f
100644
--- a/src/x64/assembler-x64.cc
+++ b/src/x64/assembler-x64.cc
@@ -354,7 +354,7 @@ Assembler::Assembler(Isolate* arg_isolate, void*
buffer, int buffer_size)
if (buffer_size <= kMinimalBufferSize) {
buffer_size = kMinimalBufferSize;
- if (isolate()->assembler_spare_buffer() != NULL) {
+ if (isolate() != NULL && isolate()->assembler_spare_buffer() !=
NULL) {
buffer = isolate()->assembler_spare_buffer();
isolate()->set_assembler_spare_buffer(NULL);
}
@@ -398,7 +398,8 @@ Assembler::Assembler(Isolate* arg_isolate, void*
buffer, int buffer_size)
Assembler::~Assembler() {
if (own_buffer_) {
- if (isolate()->assembler_spare_buffer() == NULL &&
+ if (isolate() != NULL &&
+ isolate()->assembler_spare_buffer() == NULL &&
buffer_size_ == kMinimalBufferSize) {
isolate()->set_assembler_spare_buffer(buffer_);
} else {
@@ -521,7 +522,8 @@ void Assembler::GrowBuffer() {
reloc_info_writer.pos(), desc.reloc_size);
// Switch buffers.
- if (isolate()->assembler_spare_buffer() == NULL &&
+ if (isolate() != NULL &&
+ isolate()->assembler_spare_buffer() == NULL &&
buffer_size_ == kMinimalBufferSize) {
isolate()->set_assembler_spare_buffer(buffer_);
} else {
Index: src/x64/codegen-x64.cc
diff --git a/src/x64/codegen-x64.cc b/src/x64/codegen-x64.cc
index
00ee51348f166b7fb09f774a023bdf80cda3a4c2..9cf85c416069a8c6ceee523405e6949cd266b701
100644
--- a/src/x64/codegen-x64.cc
+++ b/src/x64/codegen-x64.cc
@@ -8755,7 +8755,7 @@ ModuloFunction CreateModuloFunction() {
&actual_size,
true));
CHECK(buffer);
- Assembler masm(Isolate::Current(), buffer,
static_cast<int>(actual_size));
+ Assembler masm(NULL, buffer, static_cast<int>(actual_size));
// Generated code is put into a fixed, unmovable, buffer, and not into
// the V8 heap. We can't, and don't, refer to any relocatable addresses
// (e.g. the JavaScript nan-object).
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev