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

Reply via email to