Revision: 9215
Author: [email protected]
Date: Fri Sep 9 15:39:47 2011
Log: Rename SmartPointer to SmartArrayPointer.
As pointed out in: http://codereview.chromium.org/7754007/#msg5
"SmartPointer should have been named SmartArrayPointer as it expects an
input
allocated using new[] and deallocates it using delete[]. Using it as a
simple
scoped pointer for a single object is incorrect."
[email protected]
Review URL: http://codereview.chromium.org/7860011
Patch from Thiago Farina <[email protected]>.
http://code.google.com/p/v8/source/detail?r=9215
Added:
/branches/bleeding_edge/src/smart-array-pointer.h
Deleted:
/branches/bleeding_edge/src/smart-pointer.h
Modified:
/branches/bleeding_edge/src/arm/lithium-arm.cc
/branches/bleeding_edge/src/arm/lithium-codegen-arm.cc
/branches/bleeding_edge/src/ast.cc
/branches/bleeding_edge/src/ast.h
/branches/bleeding_edge/src/code-stubs.cc
/branches/bleeding_edge/src/code-stubs.h
/branches/bleeding_edge/src/d8-debug.cc
/branches/bleeding_edge/src/d8-debug.h
/branches/bleeding_edge/src/d8-readline.cc
/branches/bleeding_edge/src/d8.cc
/branches/bleeding_edge/src/d8.h
/branches/bleeding_edge/src/debug-agent.cc
/branches/bleeding_edge/src/debug-agent.h
/branches/bleeding_edge/src/disassembler.cc
/branches/bleeding_edge/src/flags.cc
/branches/bleeding_edge/src/gdb-jit.cc
/branches/bleeding_edge/src/hydrogen-instructions.cc
/branches/bleeding_edge/src/hydrogen.cc
/branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc
/branches/bleeding_edge/src/ia32/lithium-ia32.cc
/branches/bleeding_edge/src/liveobjectlist.cc
/branches/bleeding_edge/src/log-utils.cc
/branches/bleeding_edge/src/log.cc
/branches/bleeding_edge/src/messages.cc
/branches/bleeding_edge/src/messages.h
/branches/bleeding_edge/src/objects.cc
/branches/bleeding_edge/src/objects.h
/branches/bleeding_edge/src/parser.cc
/branches/bleeding_edge/src/platform-win32.cc
/branches/bleeding_edge/src/prettyprinter.cc
/branches/bleeding_edge/src/runtime.cc
/branches/bleeding_edge/src/scopes.cc
/branches/bleeding_edge/src/string-stream.cc
/branches/bleeding_edge/src/string-stream.h
/branches/bleeding_edge/src/x64/lithium-codegen-x64.cc
/branches/bleeding_edge/src/x64/lithium-x64.cc
/branches/bleeding_edge/test/cctest/test-debug.cc
/branches/bleeding_edge/test/cctest/test-func-name-inference.cc
/branches/bleeding_edge/test/cctest/test-heap-profiler.cc
/branches/bleeding_edge/test/cctest/test-parsing.cc
/branches/bleeding_edge/test/cctest/test-regexp.cc
/branches/bleeding_edge/test/cctest/test-reloc-info.cc
/branches/bleeding_edge/tools/gyp/v8.gyp
=======================================
--- /dev/null
+++ /branches/bleeding_edge/src/smart-array-pointer.h Fri Sep 9 15:39:47
2011
@@ -0,0 +1,100 @@
+// Copyright 2011 the V8 project authors. All rights reserved.
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following
+// disclaimer in the documentation and/or other materials provided
+// with the distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived
+// from this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef V8_SMART_ARRAY_POINTER_H_
+#define V8_SMART_ARRAY_POINTER_H_
+
+namespace v8 {
+namespace internal {
+
+
+// A 'scoped array pointer' that calls DeleteArray on its pointer when the
+// destructor is called.
+template<typename T>
+class SmartArrayPointer {
+ public:
+ // Default constructor. Constructs an empty scoped pointer.
+ inline SmartArrayPointer() : p_(NULL) {}
+
+ // Constructs a scoped pointer from a plain one.
+ explicit inline SmartArrayPointer(T* ptr) : p_(ptr) {}
+
+ // Copy constructor removes the pointer from the original to avoid double
+ // freeing.
+ inline SmartArrayPointer(const SmartArrayPointer<T>& rhs) : p_(rhs.p_) {
+ const_cast<SmartArrayPointer<T>&>(rhs).p_ = NULL;
+ }
+
+ // When the destructor of the scoped pointer is executed the plain
pointer
+ // is deleted using DeleteArray. This implies that you must allocate
with
+ // NewArray.
+ inline ~SmartArrayPointer() { if (p_) DeleteArray(p_); }
+
+ inline T* operator->() const { return p_; }
+
+ // You can get the underlying pointer out with the * operator.
+ inline T* operator*() { return p_; }
+
+ // You can use [n] to index as if it was a plain pointer
+ inline T& operator[](size_t i) {
+ return p_[i];
+ }
+
+ // We don't have implicit conversion to a T* since that hinders
migration:
+ // You would not be able to change a method from returning a T* to
+ // returning an SmartArrayPointer<T> and then get errors wherever it is
used.
+
+
+ // If you want to take out the plain pointer and don't want it
automatically
+ // deleted then call Detach(). Afterwards, the smart pointer is empty
+ // (NULL).
+ inline T* Detach() {
+ T* temp = p_;
+ p_ = NULL;
+ return temp;
+ }
+
+ // Assignment requires an empty (NULL) SmartArrayPointer as the
receiver. Like
+ // the copy constructor it removes the pointer in the original to avoid
+ // double freeing.
+ inline SmartArrayPointer& operator=(const SmartArrayPointer<T>& rhs) {
+ ASSERT(is_empty());
+ T* tmp = rhs.p_; // swap to handle self-assignment
+ const_cast<SmartArrayPointer<T>&>(rhs).p_ = NULL;
+ p_ = tmp;
+ return *this;
+ }
+
+ inline bool is_empty() { return p_ == NULL; }
+
+ private:
+ T* p_;
+};
+
+} } // namespace v8::internal
+
+#endif // V8_SMART_ARRAY_POINTER_H_
=======================================
--- /branches/bleeding_edge/src/smart-pointer.h Thu Sep 8 06:51:06 2011
+++ /dev/null
@@ -1,100 +0,0 @@
-// Copyright 2008 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef V8_SMART_POINTER_H_
-#define V8_SMART_POINTER_H_
-
-namespace v8 {
-namespace internal {
-
-
-// A 'scoped array pointer' that calls DeleteArray on its pointer when the
-// destructor is called.
-template<typename T>
-class SmartPointer {
- public:
- // Default constructor. Constructs an empty scoped pointer.
- inline SmartPointer() : p_(NULL) {}
-
- // Constructs a scoped pointer from a plain one.
- explicit inline SmartPointer(T* ptr) : p_(ptr) {}
-
- // Copy constructor removes the pointer from the original to avoid double
- // freeing.
- inline SmartPointer(const SmartPointer<T>& rhs) : p_(rhs.p_) {
- const_cast<SmartPointer<T>&>(rhs).p_ = NULL;
- }
-
- // When the destructor of the scoped pointer is executed the plain
pointer
- // is deleted using DeleteArray. This implies that you must allocate
with
- // NewArray.
- inline ~SmartPointer() { if (p_) DeleteArray(p_); }
-
- inline T* operator->() const { return p_; }
-
- // You can get the underlying pointer out with the * operator.
- inline T* operator*() { return p_; }
-
- // You can use [n] to index as if it was a plain pointer
- inline T& operator[](size_t i) {
- return p_[i];
- }
-
- // We don't have implicit conversion to a T* since that hinders
migration:
- // You would not be able to change a method from returning a T* to
- // returning an SmartPointer<T> and then get errors wherever it is used.
-
-
- // If you want to take out the plain pointer and don't want it
automatically
- // deleted then call Detach(). Afterwards, the smart pointer is empty
- // (NULL).
- inline T* Detach() {
- T* temp = p_;
- p_ = NULL;
- return temp;
- }
-
- // Assignment requires an empty (NULL) SmartPointer as the receiver.
Like
- // the copy constructor it removes the pointer in the original to avoid
- // double freeing.
- inline SmartPointer& operator=(const SmartPointer<T>& rhs) {
- ASSERT(is_empty());
- T* tmp = rhs.p_; // swap to handle self-assignment
- const_cast<SmartPointer<T>&>(rhs).p_ = NULL;
- p_ = tmp;
- return *this;
- }
-
- inline bool is_empty() { return p_ == NULL; }
-
- private:
- T* p_;
-};
-
-} } // namespace v8::internal
-
-#endif // V8_SMART_POINTER_H_
=======================================
--- /branches/bleeding_edge/src/arm/lithium-arm.cc Fri Sep 9 02:35:57 2011
+++ /branches/bleeding_edge/src/arm/lithium-arm.cc Fri Sep 9 15:39:47 2011
@@ -311,13 +311,13 @@
void LCallNamed::PrintDataTo(StringStream* stream) {
- SmartPointer<char> name_string = name()->ToCString();
+ SmartArrayPointer<char> name_string = name()->ToCString();
stream->Add("%s #%d / ", *name_string, arity());
}
void LCallGlobal::PrintDataTo(StringStream* stream) {
- SmartPointer<char> name_string = name()->ToCString();
+ SmartArrayPointer<char> name_string = name()->ToCString();
stream->Add("%s #%d / ", *name_string, arity());
}
@@ -546,7 +546,8 @@
void LChunkBuilder::Abort(const char* format, ...) {
if (FLAG_trace_bailout) {
- SmartPointer<char>
name(info()->shared_info()->DebugName()->ToCString());
+ SmartArrayPointer<char> name(
+ info()->shared_info()->DebugName()->ToCString());
PrintF("Aborting LChunk building in @\"%s\": ", *name);
va_list arguments;
va_start(arguments, format);
=======================================
--- /branches/bleeding_edge/src/arm/lithium-codegen-arm.cc Fri Sep 9
02:35:57 2011
+++ /branches/bleeding_edge/src/arm/lithium-codegen-arm.cc Fri Sep 9
15:39:47 2011
@@ -101,7 +101,8 @@
void LCodeGen::Abort(const char* format, ...) {
if (FLAG_trace_bailout) {
- SmartPointer<char>
name(info()->shared_info()->DebugName()->ToCString());
+ SmartArrayPointer<char> name(
+ info()->shared_info()->DebugName()->ToCString());
PrintF("Aborting LCodeGen in @\"%s\": ", *name);
va_list arguments;
va_start(arguments, format);
=======================================
--- /branches/bleeding_edge/src/ast.cc Thu Sep 8 01:59:14 2011
+++ /branches/bleeding_edge/src/ast.cc Fri Sep 9 15:39:47 2011
@@ -969,7 +969,7 @@
public:
RegExpUnparser();
void VisitCharacterRange(CharacterRange that);
- SmartPointer<const char> ToString() { return stream_.ToCString(); }
+ SmartArrayPointer<const char> ToString() { return stream_.ToCString(); }
#define MAKE_CASE(Name) virtual void* Visit##Name(RegExp##Name*, void*
data);
FOR_EACH_REG_EXP_TREE_TYPE(MAKE_CASE)
#undef MAKE_CASE
@@ -1124,7 +1124,7 @@
}
-SmartPointer<const char> RegExpTree::ToString() {
+SmartArrayPointer<const char> RegExpTree::ToString() {
RegExpUnparser unparser;
Accept(&unparser, NULL);
return unparser.ToString();
=======================================
--- /branches/bleeding_edge/src/ast.h Thu Sep 8 01:59:14 2011
+++ /branches/bleeding_edge/src/ast.h Fri Sep 9 15:39:47 2011
@@ -1775,7 +1775,7 @@
// expression.
virtual Interval CaptureRegisters() { return Interval::Empty(); }
virtual void AppendToText(RegExpText* text);
- SmartPointer<const char> ToString();
+ SmartArrayPointer<const char> ToString();
#define MAKE_ASTYPE(Name)
\
virtual RegExp##Name* As##Name();
\
virtual bool Is##Name();
=======================================
--- /branches/bleeding_edge/src/code-stubs.cc Fri Sep 9 02:35:57 2011
+++ /branches/bleeding_edge/src/code-stubs.cc Fri Sep 9 15:39:47 2011
@@ -61,7 +61,7 @@
}
-SmartPointer<const char> CodeStub::GetName() {
+SmartArrayPointer<const char> CodeStub::GetName() {
char buffer[100];
NoAllocationStringAllocator allocator(buffer,
static_cast<unsigned>(sizeof(buffer)));
@@ -75,7 +75,7 @@
code->set_major_key(MajorKey());
Isolate* isolate = masm->isolate();
- SmartPointer<const char> name = GetName();
+ SmartArrayPointer<const char> name = GetName();
PROFILE(isolate, CodeCreateEvent(Logger::STUB_TAG, code, *name));
GDBJIT(AddCode(GDBJITInterface::STUB, *name, code));
Counters* counters = isolate->counters();
=======================================
--- /branches/bleeding_edge/src/code-stubs.h Fri Sep 9 02:35:57 2011
+++ /branches/bleeding_edge/src/code-stubs.h Fri Sep 9 15:39:47 2011
@@ -181,7 +181,7 @@
}
// Returns a name for logging/debugging purposes.
- SmartPointer<const char> GetName();
+ SmartArrayPointer<const char> GetName();
virtual void PrintName(StringStream* stream) {
stream->Add("%s", MajorName(MajorKey(), false));
}
=======================================
--- /branches/bleeding_edge/src/d8-debug.cc Fri Jun 24 13:04:32 2011
+++ /branches/bleeding_edge/src/d8-debug.cc Fri Sep 9 15:39:47 2011
@@ -221,14 +221,14 @@
}
-void RemoteDebugger::MessageReceived(i::SmartPointer<char> message) {
+void RemoteDebugger::MessageReceived(i::SmartArrayPointer<char> message) {
RemoteDebuggerEvent* event =
new RemoteDebuggerEvent(RemoteDebuggerEvent::kMessage, message);
AddEvent(event);
}
-void RemoteDebugger::KeyboardCommand(i::SmartPointer<char> command) {
+void RemoteDebugger::KeyboardCommand(i::SmartArrayPointer<char> command) {
RemoteDebuggerEvent* event =
new RemoteDebuggerEvent(RemoteDebuggerEvent::kKeyboard, command);
AddEvent(event);
@@ -238,7 +238,7 @@
void RemoteDebugger::ConnectionClosed() {
RemoteDebuggerEvent* event =
new RemoteDebuggerEvent(RemoteDebuggerEvent::kDisconnect,
- i::SmartPointer<char>());
+ i::SmartArrayPointer<char>());
AddEvent(event);
}
@@ -330,14 +330,14 @@
void ReceiverThread::Run() {
// Receive the connect message (with empty body).
- i::SmartPointer<char> message =
- i::DebuggerAgentUtil::ReceiveMessage(remote_debugger_->conn());
+ i::SmartArrayPointer<char> message =
+ i::DebuggerAgentUtil::ReceiveMessage(remote_debugger_->conn());
ASSERT(*message == NULL);
while (true) {
// Receive a message.
- i::SmartPointer<char> message =
- i::DebuggerAgentUtil::ReceiveMessage(remote_debugger_->conn());
+ i::SmartArrayPointer<char> message =
+ i::DebuggerAgentUtil::ReceiveMessage(remote_debugger_->conn());
if (*message == NULL) {
remote_debugger_->ConnectionClosed();
return;
@@ -361,7 +361,7 @@
// Pass the keyboard command to the main thread.
remote_debugger_->KeyboardCommand(
- i::SmartPointer<char>(i::StrDup(command)));
+ i::SmartArrayPointer<char>(i::StrDup(command)));
}
}
=======================================
--- /branches/bleeding_edge/src/d8-debug.h Fri Jun 10 05:41:43 2011
+++ /branches/bleeding_edge/src/d8-debug.h Fri Sep 9 15:39:47 2011
@@ -61,8 +61,8 @@
void Run();
// Handle events from the subordinate threads.
- void MessageReceived(i::SmartPointer<char> message);
- void KeyboardCommand(i::SmartPointer<char> command);
+ void MessageReceived(i::SmartArrayPointer<char> message);
+ void KeyboardCommand(i::SmartArrayPointer<char> command);
void ConnectionClosed();
private:
@@ -127,7 +127,7 @@
// Events processed by the main deubgger thread.
class RemoteDebuggerEvent {
public:
- RemoteDebuggerEvent(int type, i::SmartPointer<char> data)
+ RemoteDebuggerEvent(int type, i::SmartArrayPointer<char> data)
: type_(type), data_(data), next_(NULL) {
ASSERT(type == kMessage || type == kKeyboard || type == kDisconnect);
}
@@ -144,7 +144,7 @@
RemoteDebuggerEvent* next() { return next_; }
int type_;
- i::SmartPointer<char> data_;
+ i::SmartArrayPointer<char> data_;
RemoteDebuggerEvent* next_;
friend class RemoteDebugger;
=======================================
--- /branches/bleeding_edge/src/d8-readline.cc Tue Apr 26 06:26:05 2011
+++ /branches/bleeding_edge/src/d8-readline.cc Fri Sep 9 15:39:47 2011
@@ -49,7 +49,7 @@
class ReadLineEditor: public LineEditor {
public:
ReadLineEditor() : LineEditor(LineEditor::READLINE, "readline") { }
- virtual i::SmartPointer<char> Prompt(const char* prompt);
+ virtual i::SmartArrayPointer<char> Prompt(const char* prompt);
virtual bool Open();
virtual bool Close();
virtual void AddHistory(const char* str);
@@ -81,9 +81,9 @@
}
-i::SmartPointer<char> ReadLineEditor::Prompt(const char* prompt) {
+i::SmartArrayPointer<char> ReadLineEditor::Prompt(const char* prompt) {
char* result = readline(prompt);
- return i::SmartPointer<char>(result);
+ return i::SmartArrayPointer<char>(result);
}
@@ -105,7 +105,7 @@
static unsigned current_index;
static Persistent<Array> current_completions;
if (state == 0) {
- i::SmartPointer<char> full_text(i::StrNDup(rl_line_buffer, rl_point));
+ i::SmartArrayPointer<char> full_text(i::StrNDup(rl_line_buffer,
rl_point));
HandleScope scope;
Handle<Array> completions =
Shell::GetCompletions(String::New(text), String::New(*full_text));
=======================================
--- /branches/bleeding_edge/src/d8.cc Fri Sep 9 04:10:36 2011
+++ /branches/bleeding_edge/src/d8.cc Fri Sep 9 15:39:47 2011
@@ -95,19 +95,19 @@
class DumbLineEditor: public LineEditor {
public:
DumbLineEditor() : LineEditor(LineEditor::DUMB, "dumb") { }
- virtual i::SmartPointer<char> Prompt(const char* prompt);
+ virtual i::SmartArrayPointer<char> Prompt(const char* prompt);
};
static DumbLineEditor dumb_line_editor;
-i::SmartPointer<char> DumbLineEditor::Prompt(const char* prompt) {
+i::SmartArrayPointer<char> DumbLineEditor::Prompt(const char* prompt) {
static const int kBufferSize = 256;
char buffer[kBufferSize];
printf("%s", prompt);
char* str = fgets(buffer, kBufferSize, stdin);
- return i::SmartPointer<char>(str ? i::StrDup(str) : str);
+ return i::SmartArrayPointer<char>(str ? i::StrDup(str) : str);
}
@@ -891,7 +891,7 @@
}
editor->Open();
while (true) {
- i::SmartPointer<char> input = editor->Prompt(Shell::kPrompt);
+ i::SmartArrayPointer<char> input = editor->Prompt(Shell::kPrompt);
if (input.is_empty()) break;
editor->AddHistory(*input);
HandleScope inner_scope;
=======================================
--- /branches/bleeding_edge/src/d8.h Thu Sep 8 15:44:03 2011
+++ /branches/bleeding_edge/src/d8.h Fri Sep 9 15:39:47 2011
@@ -31,6 +31,7 @@
#ifndef V8_SHARED
#include "allocation.h"
#include "hashmap.h"
+#include "smart-array-pointer.h"
#include "v8.h"
#else
#include "../include/v8.h"
@@ -339,7 +340,7 @@
LineEditor(Type type, const char* name);
virtual ~LineEditor() { }
- virtual i::SmartPointer<char> Prompt(const char* prompt) = 0;
+ virtual i::SmartArrayPointer<char> Prompt(const char* prompt) = 0;
virtual bool Open() { return true; }
virtual bool Close() { return true; }
virtual void AddHistory(const char* str) { }
=======================================
--- /branches/bleeding_edge/src/debug-agent.cc Fri Jun 10 02:54:04 2011
+++ /branches/bleeding_edge/src/debug-agent.cc Fri Sep 9 15:39:47 2011
@@ -169,7 +169,8 @@
while (true) {
// Read data from the debugger front end.
- SmartPointer<char> message =
DebuggerAgentUtil::ReceiveMessage(client_);
+ SmartArrayPointer<char> message =
+ DebuggerAgentUtil::ReceiveMessage(client_);
const char* msg = *message;
bool is_closing_session = (msg == NULL);
@@ -232,7 +233,7 @@
StrLength(kContentLength);
-SmartPointer<char> DebuggerAgentUtil::ReceiveMessage(const Socket* conn) {
+SmartArrayPointer<char> DebuggerAgentUtil::ReceiveMessage(const Socket*
conn) {
int received;
// Read header.
@@ -250,7 +251,7 @@
received = conn->Receive(&c, 1);
if (received <= 0) {
PrintF("Error %d\n", Socket::LastError());
- return SmartPointer<char>();
+ return SmartArrayPointer<char>();
}
// Add character to header buffer.
@@ -287,12 +288,12 @@
if (strcmp(key, kContentLength) == 0) {
// Get the content length value if present and within a sensible
range.
if (value == NULL || strlen(value) > 7) {
- return SmartPointer<char>();
+ return SmartArrayPointer<char>();
}
for (int i = 0; value[i] != '\0'; i++) {
// Bail out if illegal data.
if (value[i] < '0' || value[i] > '9') {
- return SmartPointer<char>();
+ return SmartArrayPointer<char>();
}
content_length = 10 * content_length + (value[i] - '0');
}
@@ -304,7 +305,7 @@
// Return now if no body.
if (content_length == 0) {
- return SmartPointer<char>();
+ return SmartArrayPointer<char>();
}
// Read body.
@@ -312,11 +313,11 @@
received = ReceiveAll(conn, buffer, content_length);
if (received < content_length) {
PrintF("Error %d\n", Socket::LastError());
- return SmartPointer<char>();
+ return SmartArrayPointer<char>();
}
buffer[content_length] = '\0';
- return SmartPointer<char>(buffer);
+ return SmartArrayPointer<char>(buffer);
}
=======================================
--- /branches/bleeding_edge/src/debug-agent.h Fri Jun 10 02:54:04 2011
+++ /branches/bleeding_edge/src/debug-agent.h Fri Sep 9 15:39:47 2011
@@ -72,7 +72,7 @@
void OnSessionClosed(DebuggerAgentSession* session);
Isolate* isolate_;
- SmartPointer<const char> name_; // Name of the embedding application.
+ SmartArrayPointer<const char> name_; // Name of the embedding
application.
int port_; // Port to use for the agent.
Socket* server_; // Server socket for listen/accept.
bool terminate_; // Termination flag.
@@ -117,7 +117,7 @@
static const char* const kContentLength;
static const int kContentLengthSize;
- static SmartPointer<char> ReceiveMessage(const Socket* conn);
+ static SmartArrayPointer<char> ReceiveMessage(const Socket* conn);
static bool SendConnectMessage(const Socket* conn,
const char* embedding_host);
static bool SendMessage(const Socket* conn, const Vector<uint16_t>
message);
=======================================
--- /branches/bleeding_edge/src/disassembler.cc Thu Aug 11 06:59:29 2011
+++ /branches/bleeding_edge/src/disassembler.cc Fri Sep 9 15:39:47 2011
@@ -223,7 +223,7 @@
HeapStringAllocator allocator;
StringStream accumulator(&allocator);
relocinfo.target_object()->ShortPrint(&accumulator);
- SmartPointer<const char> obj_name = accumulator.ToCString();
+ SmartArrayPointer<const char> obj_name = accumulator.ToCString();
out.AddFormatted(" ;; object: %s", *obj_name);
} else if (rmode == RelocInfo::EXTERNAL_REFERENCE) {
const char* reference_name =
=======================================
--- /branches/bleeding_edge/src/flags.cc Tue Dec 7 03:31:57 2010
+++ /branches/bleeding_edge/src/flags.cc Fri Sep 9 15:39:47 2011
@@ -31,7 +31,7 @@
#include "v8.h"
#include "platform.h"
-#include "smart-pointer.h"
+#include "smart-array-pointer.h"
#include "string-stream.h"
@@ -193,7 +193,7 @@
}
-static SmartPointer<const char> ToString(Flag* flag) {
+static SmartArrayPointer<const char> ToString(Flag* flag) {
HeapStringAllocator string_allocator;
StringStream buffer(&string_allocator);
switch (flag->type()) {
@@ -528,7 +528,7 @@
printf("Options:\n");
for (size_t i = 0; i < num_flags; ++i) {
Flag* f = &flags[i];
- SmartPointer<const char> value = ToString(f);
+ SmartArrayPointer<const char> value = ToString(f);
printf(" --%s (%s)\n type: %s default: %s\n",
f->name(), f->comment(), Type2String(f->type()), *value);
}
=======================================
--- /branches/bleeding_edge/src/gdb-jit.cc Thu Jun 30 05:19:47 2011
+++ /branches/bleeding_edge/src/gdb-jit.cc Fri Sep 9 15:39:47 2011
@@ -993,7 +993,7 @@
}
#endif
- SmartPointer<char> GetFilename() {
+ SmartArrayPointer<char> GetFilename() {
return String::cast(script_->name())->ToCString();
}
@@ -1991,7 +1991,7 @@
GetScriptLineNumber(script, 0);
if (!name.is_null()) {
- SmartPointer<char> name_cstring = name->ToCString(DISALLOW_NULLS);
+ SmartArrayPointer<char> name_cstring = name->ToCString(DISALLOW_NULLS);
AddCode(*name_cstring, *code, GDBJITInterface::FUNCTION, *script,
info);
} else {
AddCode("", *code, GDBJITInterface::FUNCTION, *script, info);
=======================================
--- /branches/bleeding_edge/src/hydrogen-instructions.cc Fri Sep 9
02:35:57 2011
+++ /branches/bleeding_edge/src/hydrogen-instructions.cc Fri Sep 9
15:39:47 2011
@@ -1133,7 +1133,7 @@
void HEnterInlined::PrintDataTo(StringStream* stream) {
- SmartPointer<char> name = function()->debug_name()->ToCString();
+ SmartArrayPointer<char> name = function()->debug_name()->ToCString();
stream->Add("%s, id=%d", *name, function()->id());
}
=======================================
--- /branches/bleeding_edge/src/hydrogen.cc Fri Sep 9 06:12:52 2011
+++ /branches/bleeding_edge/src/hydrogen.cc Fri Sep 9 15:39:47 2011
@@ -2200,7 +2200,8 @@
void HGraphBuilder::Bailout(const char* reason) {
if (FLAG_trace_bailout) {
- SmartPointer<char>
name(info()->shared_info()->DebugName()->ToCString());
+ SmartArrayPointer<char> name(
+ info()->shared_info()->DebugName()->ToCString());
PrintF("Bailout in HGraphBuilder: @\"%s\": %s\n", *name, reason);
}
SetStackOverflow();
@@ -4430,8 +4431,10 @@
Handle<JSFunction> caller,
const char* reason) {
if (FLAG_trace_inlining) {
- SmartPointer<char> target_name =
target->shared()->DebugName()->ToCString();
- SmartPointer<char> caller_name =
caller->shared()->DebugName()->ToCString();
+ SmartArrayPointer<char> target_name =
+ target->shared()->DebugName()->ToCString();
+ SmartArrayPointer<char> caller_name =
+ caller->shared()->DebugName()->ToCString();
if (reason == NULL) {
PrintF("Inlined %s called from %s.\n", *target_name, *caller_name);
} else {
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc Fri Sep 9
02:35:57 2011
+++ /branches/bleeding_edge/src/ia32/lithium-codegen-ia32.cc Fri Sep 9
15:39:47 2011
@@ -88,7 +88,8 @@
void LCodeGen::Abort(const char* format, ...) {
if (FLAG_trace_bailout) {
- SmartPointer<char>
name(info()->shared_info()->DebugName()->ToCString());
+ SmartArrayPointer<char> name(
+ info()->shared_info()->DebugName()->ToCString());
PrintF("Aborting LCodeGen in @\"%s\": ", *name);
va_list arguments;
va_start(arguments, format);
=======================================
--- /branches/bleeding_edge/src/ia32/lithium-ia32.cc Fri Sep 9 02:35:57
2011
+++ /branches/bleeding_edge/src/ia32/lithium-ia32.cc Fri Sep 9 15:39:47
2011
@@ -315,13 +315,13 @@
void LCallNamed::PrintDataTo(StringStream* stream) {
- SmartPointer<char> name_string = name()->ToCString();
+ SmartArrayPointer<char> name_string = name()->ToCString();
stream->Add("%s #%d / ", *name_string, arity());
}
void LCallGlobal::PrintDataTo(StringStream* stream) {
- SmartPointer<char> name_string = name()->ToCString();
+ SmartArrayPointer<char> name_string = name()->ToCString();
stream->Add("%s #%d / ", *name_string, arity());
}
@@ -540,7 +540,8 @@
void LChunkBuilder::Abort(const char* format, ...) {
if (FLAG_trace_bailout) {
- SmartPointer<char>
name(info()->shared_info()->DebugName()->ToCString());
+ SmartArrayPointer<char> name(
+ info()->shared_info()->DebugName()->ToCString());
PrintF("Aborting LChunk building in @\"%s\": ", *name);
va_list arguments;
va_start(arguments, format);
=======================================
--- /branches/bleeding_edge/src/liveobjectlist.cc Tue Aug 16 04:47:06 2011
+++ /branches/bleeding_edge/src/liveobjectlist.cc Fri Sep 9 15:39:47 2011
@@ -184,7 +184,7 @@
const AllocationSpace kInvalidSpace = static_cast<AllocationSpace>(-1);
static AllocationSpace FindSpaceFor(String* space_str) {
- SmartPointer<char> s =
+ SmartArrayPointer<char> s =
space_str->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
const char* key_str = *s;
@@ -236,7 +236,7 @@
static LiveObjectType FindTypeFor(String* type_str) {
- SmartPointer<char> s =
+ SmartArrayPointer<char> s =
type_str->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
#define CHECK_OBJECT_TYPE(type_, name) { \
@@ -503,10 +503,10 @@
// We'll only dump 80 of them after we compact them.
const int kMaxCharToDump = 80;
const int kMaxBufferSize = kMaxCharToDump * 2;
- SmartPointer<char> str_sp = str->ToCString(DISALLOW_NULLS,
- ROBUST_STRING_TRAVERSAL,
- 0,
- kMaxBufferSize);
+ SmartArrayPointer<char> str_sp = str->ToCString(DISALLOW_NULLS,
+
ROBUST_STRING_TRAVERSAL,
+ 0,
+ kMaxBufferSize);
char* str_cstr = *str_sp;
int length = CompactString(str_cstr);
OS::SNPrintF(buffer_v,
@@ -526,14 +526,14 @@
}
String* name = sinfo->DebugName();
- SmartPointer<char> name_sp =
+ SmartArrayPointer<char> name_sp =
name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
char* name_cstr = *name_sp;
HeapStringAllocator string_allocator;
StringStream stream(&string_allocator);
sinfo->SourceCodePrint(&stream, 50);
- SmartPointer<const char> source_sp = stream.ToCString();
+ SmartArrayPointer<const char> source_sp = stream.ToCString();
const char* source_cstr = *source_sp;
OS::SNPrintF(buffer_v,
@@ -1656,7 +1656,7 @@
// Gets the obj id for the specified address if valid.
Object* LiveObjectList::GetObjId(Handle<String> address) {
- SmartPointer<char> addr_str =
+ SmartArrayPointer<char> addr_str =
address->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
Isolate* isolate = Isolate::Current();
=======================================
--- /branches/bleeding_edge/src/log-utils.cc Fri Aug 5 04:32:46 2011
+++ /branches/bleeding_edge/src/log-utils.cc Fri Sep 9 15:39:47 2011
@@ -125,7 +125,7 @@
stream.Put(*p);
}
}
- SmartPointer<const char> expanded = stream.ToCString();
+ SmartArrayPointer<const char> expanded = stream.ToCString();
OpenFile(*expanded);
} else {
OpenFile(FLAG_logfile);
=======================================
--- /branches/bleeding_edge/src/log.cc Thu Jul 21 06:51:04 2011
+++ /branches/bleeding_edge/src/log.cc Fri Sep 9 15:39:47 2011
@@ -617,7 +617,7 @@
void Logger::ApiNamedSecurityCheck(Object* key) {
if (!log_->IsEnabled() || !FLAG_log_api) return;
if (key->IsString()) {
- SmartPointer<char> str =
+ SmartArrayPointer<char> str =
String::cast(key)->ToCString(DISALLOW_NULLS,
ROBUST_STRING_TRAVERSAL);
ApiEvent("api,check-security,\"%s\"\n", *str);
} else if (key->IsUndefined()) {
@@ -762,9 +762,9 @@
ASSERT(name->IsString());
if (!log_->IsEnabled() || !FLAG_log_api) return;
String* class_name_obj = holder->class_name();
- SmartPointer<char> class_name =
+ SmartArrayPointer<char> class_name =
class_name_obj->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
- SmartPointer<char> property_name =
+ SmartArrayPointer<char> property_name =
String::cast(name)->ToCString(DISALLOW_NULLS,
ROBUST_STRING_TRAVERSAL);
ApiEvent("api,%s,\"%s\",\"%s\"\n", tag, *class_name, *property_name);
}
@@ -774,7 +774,7 @@
uint32_t index) {
if (!log_->IsEnabled() || !FLAG_log_api) return;
String* class_name_obj = holder->class_name();
- SmartPointer<char> class_name =
+ SmartArrayPointer<char> class_name =
class_name_obj->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
ApiEvent("api,%s,\"%s\",%u\n", tag, *class_name, index);
}
@@ -782,7 +782,7 @@
void Logger::ApiObjectAccess(const char* tag, JSObject* object) {
if (!log_->IsEnabled() || !FLAG_log_api) return;
String* class_name_obj = object->class_name();
- SmartPointer<char> class_name =
+ SmartArrayPointer<char> class_name =
class_name_obj->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
ApiEvent("api,%s,\"%s\"\n", tag, *class_name);
}
@@ -836,7 +836,7 @@
void Logger::CallbackEvent(String* name, Address entry_point) {
if (!log_->IsEnabled() || !FLAG_log_code) return;
- SmartPointer<char> str =
+ SmartArrayPointer<char> str =
name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
CallbackEventInternal("", *str, entry_point);
}
@@ -844,7 +844,7 @@
void Logger::GetterCallbackEvent(String* name, Address entry_point) {
if (!log_->IsEnabled() || !FLAG_log_code) return;
- SmartPointer<char> str =
+ SmartArrayPointer<char> str =
name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
CallbackEventInternal("get ", *str, entry_point);
}
@@ -852,7 +852,7 @@
void Logger::SetterCallbackEvent(String* name, Address entry_point) {
if (!log_->IsEnabled() || !FLAG_log_code) return;
- SmartPointer<char> str =
+ SmartArrayPointer<char> str =
name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
CallbackEventInternal("set ", *str, entry_point);
}
@@ -957,7 +957,7 @@
return;
LogMessageBuilder msg(this);
- SmartPointer<char> str =
+ SmartArrayPointer<char> str =
name->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
msg.Append("%s,%s,",
kLogEventsNames[CODE_CREATION_EVENT],
@@ -998,9 +998,9 @@
}
if (!FLAG_log_code) return;
LogMessageBuilder msg(this);
- SmartPointer<char> name =
+ SmartArrayPointer<char> name =
shared->DebugName()->ToCString(DISALLOW_NULLS,
ROBUST_STRING_TRAVERSAL);
- SmartPointer<char> sourcestr =
+ SmartArrayPointer<char> sourcestr =
source->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
msg.Append("%s,%s,",
kLogEventsNames[CODE_CREATION_EVENT],
=======================================
--- /branches/bleeding_edge/src/messages.cc Thu May 19 04:47:34 2011
+++ /branches/bleeding_edge/src/messages.cc Fri Sep 9 15:39:47 2011
@@ -41,13 +41,13 @@
// by default.
void MessageHandler::DefaultMessageReport(const MessageLocation* loc,
Handle<Object> message_obj) {
- SmartPointer<char> str = GetLocalizedMessage(message_obj);
+ SmartArrayPointer<char> str = GetLocalizedMessage(message_obj);
if (loc == NULL) {
PrintF("%s\n", *str);
} else {
HandleScope scope;
Handle<Object> data(loc->script()->name());
- SmartPointer<char> data_str;
+ SmartArrayPointer<char> data_str;
if (data->IsString())
data_str = Handle<String>::cast(data)->ToCString(DISALLOW_NULLS);
PrintF("%s:%i: %s\n", *data_str ? *data_str : "<unknown>",
@@ -170,7 +170,8 @@
}
-SmartPointer<char> MessageHandler::GetLocalizedMessage(Handle<Object>
data) {
+SmartArrayPointer<char> MessageHandler::GetLocalizedMessage(
+ Handle<Object> data) {
HandleScope scope;
return GetMessage(data)->ToCString(DISALLOW_NULLS);
}
=======================================
--- /branches/bleeding_edge/src/messages.h Fri Apr 8 02:39:45 2011
+++ /branches/bleeding_edge/src/messages.h Fri Sep 9 15:39:47 2011
@@ -105,7 +105,7 @@
static void DefaultMessageReport(const MessageLocation* loc,
Handle<Object> message_obj);
static Handle<String> GetMessage(Handle<Object> data);
- static SmartPointer<char> GetLocalizedMessage(Handle<Object> data);
+ static SmartArrayPointer<char> GetLocalizedMessage(Handle<Object> data);
};
} } // namespace v8::internal
=======================================
--- /branches/bleeding_edge/src/objects.cc Fri Sep 9 07:47:37 2011
+++ /branches/bleeding_edge/src/objects.cc Fri Sep 9 15:39:47 2011
@@ -5057,13 +5057,13 @@
}
-SmartPointer<char> String::ToCString(AllowNullsFlag allow_nulls,
- RobustnessFlag robust_flag,
- int offset,
- int length,
- int* length_return) {
+SmartArrayPointer<char> String::ToCString(AllowNullsFlag allow_nulls,
+ RobustnessFlag robust_flag,
+ int offset,
+ int length,
+ int* length_return) {
if (robust_flag == ROBUST_STRING_TRAVERSAL && !LooksValid()) {
- return SmartPointer<char>(NULL);
+ return SmartArrayPointer<char>(NULL);
}
Heap* heap = GetHeap();
@@ -5107,13 +5107,13 @@
character_position++;
}
result[utf8_byte_position] = 0;
- return SmartPointer<char>(result);
+ return SmartArrayPointer<char>(result);
}
-SmartPointer<char> String::ToCString(AllowNullsFlag allow_nulls,
- RobustnessFlag robust_flag,
- int* length_return) {
+SmartArrayPointer<char> String::ToCString(AllowNullsFlag allow_nulls,
+ RobustnessFlag robust_flag,
+ int* length_return) {
return ToCString(allow_nulls, robust_flag, 0, -1, length_return);
}
@@ -5144,9 +5144,9 @@
}
-SmartPointer<uc16> String::ToWideCString(RobustnessFlag robust_flag) {
+SmartArrayPointer<uc16> String::ToWideCString(RobustnessFlag robust_flag) {
if (robust_flag == ROBUST_STRING_TRAVERSAL && !LooksValid()) {
- return SmartPointer<uc16>();
+ return SmartArrayPointer<uc16>();
}
Heap* heap = GetHeap();
@@ -5162,7 +5162,7 @@
result[i++] = character;
}
result[i] = 0;
- return SmartPointer<uc16>(result);
+ return SmartArrayPointer<uc16>(result);
}
@@ -6379,7 +6379,7 @@
void JSFunction::PrintName(FILE* out) {
- SmartPointer<char> name = shared()->DebugName()->ToCString();
+ SmartArrayPointer<char> name = shared()->DebugName()->ToCString();
PrintF(out, "%s", *name);
}
=======================================
--- /branches/bleeding_edge/src/objects.h Fri Sep 9 07:47:37 2011
+++ /branches/bleeding_edge/src/objects.h Fri Sep 9 15:39:47 2011
@@ -31,7 +31,7 @@
#include "allocation.h"
#include "builtins.h"
#include "list.h"
-#include "smart-pointer.h"
+#include "smart-array-pointer.h"
#include "unicode-inl.h"
#if V8_TARGET_ARCH_ARM
#include "arm/constants-arm.h"
@@ -5979,12 +5979,12 @@
// ROBUST_STRING_TRAVERSAL invokes behaviour that is robust This means
it
// handles unexpected data without causing assert failures and it does
not
// do any heap allocations. This is useful when printing stack traces.
- SmartPointer<char> ToCString(AllowNullsFlag allow_nulls,
- RobustnessFlag robustness_flag,
- int offset,
- int length,
- int* length_output = 0);
- SmartPointer<char> ToCString(
+ SmartArrayPointer<char> ToCString(AllowNullsFlag allow_nulls,
+ RobustnessFlag robustness_flag,
+ int offset,
+ int length,
+ int* length_output = 0);
+ SmartArrayPointer<char> ToCString(
AllowNullsFlag allow_nulls = DISALLOW_NULLS,
RobustnessFlag robustness_flag = FAST_STRING_TRAVERSAL,
int* length_output = 0);
@@ -5997,7 +5997,7 @@
// ROBUST_STRING_TRAVERSAL invokes behaviour that is robust This means
it
// handles unexpected data without causing assert failures and it does
not
// do any heap allocations. This is useful when printing stack traces.
- SmartPointer<uc16> ToWideCString(
+ SmartArrayPointer<uc16> ToWideCString(
RobustnessFlag robustness_flag = FAST_STRING_TRAVERSAL);
// Tells whether the hash code has been computed.
=======================================
--- /branches/bleeding_edge/src/parser.cc Thu Sep 8 06:06:44 2011
+++ /branches/bleeding_edge/src/parser.cc Fri Sep 9 15:39:47 2011
@@ -1369,7 +1369,7 @@
if (harmony_block_scoping_) {
// In harmony mode we treat re-declarations as early errors. See
// ES5 16 for a definition of early errors.
- SmartPointer<char> c_string = name->ToCString(DISALLOW_NULLS);
+ SmartArrayPointer<char> c_string =
name->ToCString(DISALLOW_NULLS);
const char* elms[2] = { "Variable", *c_string };
Vector<const char*> args(elms, 2);
ReportMessage("redeclaration", args);
@@ -1902,7 +1902,7 @@
// structured. However, these are probably changes we want to
// make later anyway so we should go back and fix this then.
if (ContainsLabel(labels, label) || TargetStackContainsLabel(label)) {
- SmartPointer<char> c_string = label->ToCString(DISALLOW_NULLS);
+ SmartArrayPointer<char> c_string = label->ToCString(DISALLOW_NULLS);
const char* elms[2] = { "Label", *c_string };
Vector<const char*> args(elms, 2);
ReportMessage("redeclaration", args);
@@ -3006,7 +3006,7 @@
void Parser::ReportInvalidPreparseData(Handle<String> name, bool* ok) {
- SmartPointer<char> name_string = name->ToCString(DISALLOW_NULLS);
+ SmartArrayPointer<char> name_string = name->ToCString(DISALLOW_NULLS);
const char* element[1] = { *name_string };
ReportMessage("invalid_preparser_data",
Vector<const char*>(element, 1));
@@ -4096,7 +4096,7 @@
// In harmony mode we treat conflicting variable bindinds as early
// errors. See ES5 16 for a definition of early errors.
Handle<String> name = decl->proxy()->name();
- SmartPointer<char> c_string = name->ToCString(DISALLOW_NULLS);
+ SmartArrayPointer<char> c_string = name->ToCString(DISALLOW_NULLS);
const char* elms[2] = { "Variable", *c_string };
Vector<const char*> args(elms, 2);
int position = decl->proxy()->position();
=======================================
--- /branches/bleeding_edge/src/platform-win32.cc Wed Sep 7 05:39:53 2011
+++ /branches/bleeding_edge/src/platform-win32.cc Fri Sep 9 15:39:47 2011
@@ -1299,7 +1299,7 @@
// Try to locate a symbol for this frame.
DWORD64 symbol_displacement;
- SmartPointer<IMAGEHLP_SYMBOL64> symbol(
+ SmartArrayPointer<IMAGEHLP_SYMBOL64> symbol(
NewArray<IMAGEHLP_SYMBOL64>(kStackWalkMaxNameLen));
if (symbol.is_empty()) return kStackWalkError; // Out of memory.
memset(*symbol, 0, sizeof(IMAGEHLP_SYMBOL64) + kStackWalkMaxNameLen);
=======================================
--- /branches/bleeding_edge/src/prettyprinter.cc Thu Sep 8 01:59:14 2011
+++ /branches/bleeding_edge/src/prettyprinter.cc Fri Sep 9 15:39:47 2011
@@ -1105,7 +1105,7 @@
void JsonAstBuilder::AddAttribute(const char* name, Handle<String> value) {
- SmartPointer<char> value_string = value->ToCString();
+ SmartArrayPointer<char> value_string = value->ToCString();
AddAttributePrefix(name);
Print("\"%s\"", *value_string);
}
=======================================
--- /branches/bleeding_edge/src/runtime.cc Fri Sep 9 07:47:37 2011
+++ /branches/bleeding_edge/src/runtime.cc Fri Sep 9 15:39:47 2011
@@ -52,7 +52,7 @@
#include "runtime-profiler.h"
#include "runtime.h"
#include "scopeinfo.h"
-#include "smart-pointer.h"
+#include "smart-array-pointer.h"
#include "string-search.h"
#include "stub-cache.h"
#include "v8threads.h"
@@ -7908,8 +7908,8 @@
}
-static SmartPointer<Object**> GetNonBoundArguments(int bound_argc,
- int* total_argc) {
+static SmartArrayPointer<Object**> GetNonBoundArguments(int bound_argc,
+ int* total_argc) {
// Find frame containing arguments passed to the caller.
JavaScriptFrameIterator it;
JavaScriptFrame* frame = it.frame();
@@ -7925,7 +7925,7 @@
&args_slots);
*total_argc = bound_argc + args_count;
- SmartPointer<Object**> param_data(NewArray<Object**>(*total_argc));
+ SmartArrayPointer<Object**>
param_data(NewArray<Object**>(*total_argc));
for (int i = 0; i < args_count; i++) {
Handle<Object> val = args_slots[i].GetValue();
param_data[bound_argc + i] = val.location();
@@ -7937,7 +7937,7 @@
int args_count = frame->ComputeParametersCount();
*total_argc = bound_argc + args_count;
- SmartPointer<Object**> param_data(NewArray<Object**>(*total_argc));
+ SmartArrayPointer<Object**>
param_data(NewArray<Object**>(*total_argc));
for (int i = 0; i < args_count; i++) {
Handle<Object> val = Handle<Object>(frame->GetParameter(i));
param_data[bound_argc + i] = val.location();
@@ -7964,7 +7964,7 @@
}
int total_argc = 0;
- SmartPointer<Object**> param_data =
+ SmartArrayPointer<Object**> param_data =
GetNonBoundArguments(bound_argc, &total_argc);
for (int i = 0; i < bound_argc; i++) {
Handle<Object> val = Handle<Object>(bound_args->get(i));
@@ -8883,7 +8883,7 @@
static void PrintString(String* str) {
// not uncommon to have empty strings
if (str->length() > 0) {
- SmartPointer<char> s =
+ SmartArrayPointer<char> s =
str->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
PrintF("%s", *s);
}
@@ -12435,7 +12435,7 @@
// Sets a v8 flag.
RUNTIME_FUNCTION(MaybeObject*, Runtime_SetFlags) {
CONVERT_CHECKED(String, arg, args[0]);
- SmartPointer<char> flags =
+ SmartArrayPointer<char> flags =
arg->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
FlagList::SetFlagsFromString(*flags, StrLength(*flags));
return isolate->heap()->undefined_value();
=======================================
--- /branches/bleeding_edge/src/scopes.cc Wed Sep 7 04:02:31 2011
+++ /branches/bleeding_edge/src/scopes.cc Fri Sep 9 15:39:47 2011
@@ -663,7 +663,7 @@
static void PrintName(Handle<String> name) {
- SmartPointer<char> s = name->ToCString(DISALLOW_NULLS);
+ SmartArrayPointer<char> s = name->ToCString(DISALLOW_NULLS);
PrintF("%s", *s);
}
=======================================
--- /branches/bleeding_edge/src/string-stream.cc Tue Jul 12 01:03:19 2011
+++ /branches/bleeding_edge/src/string-stream.cc Fri Sep 9 15:39:47 2011
@@ -252,11 +252,11 @@
}
-SmartPointer<const char> StringStream::ToCString() const {
+SmartArrayPointer<const char> StringStream::ToCString() const {
char* str = NewArray<char>(length_ + 1);
memcpy(str, buffer_, length_);
str[length_] = '\0';
- return SmartPointer<const char>(str);
+ return SmartArrayPointer<const char>(str);
}
=======================================
--- /branches/bleeding_edge/src/string-stream.h Thu Sep 8 12:57:14 2011
+++ /branches/bleeding_edge/src/string-stream.h Fri Sep 9 15:39:47 2011
@@ -143,7 +143,7 @@
void OutputToStdOut() { OutputToFile(stdout); }
void Log();
Handle<String> ToString();
- SmartPointer<const char> ToCString() const;
+ SmartArrayPointer<const char> ToCString() const;
int length() const { return length_; }
// Object printing support.
=======================================
--- /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Fri Sep 9
02:35:57 2011
+++ /branches/bleeding_edge/src/x64/lithium-codegen-x64.cc Fri Sep 9
15:39:47 2011
@@ -100,7 +100,8 @@
void LCodeGen::Abort(const char* format, ...) {
if (FLAG_trace_bailout) {
- SmartPointer<char>
name(info()->shared_info()->DebugName()->ToCString());
+ SmartArrayPointer<char> name(
+ info()->shared_info()->DebugName()->ToCString());
PrintF("Aborting LCodeGen in @\"%s\": ", *name);
va_list arguments;
va_start(arguments, format);
=======================================
--- /branches/bleeding_edge/src/x64/lithium-x64.cc Fri Sep 9 02:35:57 2011
+++ /branches/bleeding_edge/src/x64/lithium-x64.cc Fri Sep 9 15:39:47 2011
@@ -313,13 +313,13 @@
void LCallNamed::PrintDataTo(StringStream* stream) {
- SmartPointer<char> name_string = name()->ToCString();
+ SmartArrayPointer<char> name_string = name()->ToCString();
stream->Add("%s #%d / ", *name_string, arity());
}
void LCallGlobal::PrintDataTo(StringStream* stream) {
- SmartPointer<char> name_string = name()->ToCString();
+ SmartArrayPointer<char> name_string = name()->ToCString();
stream->Add("%s #%d / ", *name_string, arity());
}
@@ -539,7 +539,8 @@
void LChunkBuilder::Abort(const char* format, ...) {
if (FLAG_trace_bailout) {
- SmartPointer<char>
name(info()->shared_info()->DebugName()->ToCString());
+ SmartArrayPointer<char> name(
+ info()->shared_info()->DebugName()->ToCString());
PrintF("Aborting LChunk building in @\"%s\": ", *name);
va_list arguments;
va_start(arguments, format);
=======================================
--- /branches/bleeding_edge/test/cctest/test-debug.cc Thu Sep 8 12:57:14
2011
+++ /branches/bleeding_edge/test/cctest/test-debug.cc Fri Sep 9 15:39:47
2011
@@ -5917,7 +5917,7 @@
private:
int port_;
- i::SmartPointer<char> body_;
+ i::SmartArrayPointer<char> body_;
i::Socket* server_; // Server socket used for bind/accept.
i::Socket* client_; // Single client connection used by the test.
i::Semaphore* listening_; // Signalled when the server is in listen
mode.
=======================================
--- /branches/bleeding_edge/test/cctest/test-func-name-inference.cc Wed Jun
22 13:23:48 2011
+++ /branches/bleeding_edge/test/cctest/test-func-name-inference.cc Fri
Sep 9 15:39:47 2011
@@ -41,7 +41,7 @@
using ::v8::internal::Object;
using ::v8::internal::Runtime;
using ::v8::internal::Script;
-using ::v8::internal::SmartPointer;
+using ::v8::internal::SmartArrayPointer;
using ::v8::internal::SharedFunctionInfo;
using ::v8::internal::String;
@@ -96,7 +96,7 @@
SharedFunctionInfo::cast(shared_func_info_ptr));
// Verify inferred function name.
- SmartPointer<char> inferred_name =
+ SmartArrayPointer<char> inferred_name =
shared_func_info->inferred_name()->ToCString();
CHECK_EQ(ref_inferred_name, *inferred_name);
#endif // ENABLE_DEBUGGER_SUPPORT
=======================================
--- /branches/bleeding_edge/test/cctest/test-heap-profiler.cc Tue Aug 23
05:24:54 2011
+++ /branches/bleeding_edge/test/cctest/test-heap-profiler.cc Fri Sep 9
15:39:47 2011
@@ -892,7 +892,7 @@
static int StringCmp(const char* ref, i::String* act) {
- i::SmartPointer<char> s_act = act->ToCString();
+ i::SmartArrayPointer<char> s_act = act->ToCString();
int result = strcmp(ref, *s_act);
if (result != 0)
fprintf(stderr, "Expected: \"%s\", Actual: \"%s\"\n", ref, *s_act);
=======================================
--- /branches/bleeding_edge/test/cctest/test-parsing.cc Thu Sep 8 06:06:44
2011
+++ /branches/bleeding_edge/test/cctest/test-parsing.cc Fri Sep 9 15:39:47
2011
@@ -345,7 +345,7 @@
reinterpret_cast<uintptr_t>(&marker) - 128 * 1024);
size_t kProgramSize = 1024 * 1024;
- i::SmartPointer<char> program(
+ i::SmartArrayPointer<char> program(
reinterpret_cast<char*>(malloc(kProgramSize + 1)));
memset(*program, '(', kProgramSize);
program[kProgramSize] = '\0';
@@ -398,7 +398,7 @@
if (end == 0) end = length;
unsigned sub_length = end - start;
i::HandleScope test_scope;
- i::SmartPointer<i::uc16> uc16_buffer(new i::uc16[length]);
+ i::SmartArrayPointer<i::uc16> uc16_buffer(new i::uc16[length]);
for (unsigned i = 0; i < length; i++) {
uc16_buffer[i] = static_cast<i::uc16>(ascii_source[i]);
}
=======================================
--- /branches/bleeding_edge/test/cctest/test-regexp.cc Mon Sep 5 00:39:47
2011
+++ /branches/bleeding_edge/test/cctest/test-regexp.cc Fri Sep 9 15:39:47
2011
@@ -79,7 +79,7 @@
}
-static SmartPointer<const char> Parse(const char* input) {
+static SmartArrayPointer<const char> Parse(const char* input) {
V8::Initialize(NULL);
v8::HandleScope scope;
ZoneScope zone_scope(Isolate::Current(), DELETE_ON_EXIT);
@@ -88,7 +88,7 @@
CHECK(v8::internal::RegExpParser::ParseRegExp(&reader, false, &result));
CHECK(result.tree != NULL);
CHECK(result.error.is_null());
- SmartPointer<const char> output = result.tree->ToString();
+ SmartArrayPointer<const char> output = result.tree->ToString();
return output;
}
@@ -391,7 +391,7 @@
CHECK(!v8::internal::RegExpParser::ParseRegExp(&reader, false, &result));
CHECK(result.tree == NULL);
CHECK(!result.error.is_null());
- SmartPointer<char> str = result.error->ToCString(ALLOW_NULLS);
+ SmartArrayPointer<char> str = result.error->ToCString(ALLOW_NULLS);
CHECK_EQ(expected, *str);
}
@@ -423,7 +423,7 @@
for (int i = 0; i <= kMaxCaptures; i++) {
accumulator.Add("()");
}
- SmartPointer<const char> many_captures(accumulator.ToCString());
+ SmartArrayPointer<const char> many_captures(accumulator.ToCString());
ExpectError(*many_captures, kTooManyCaptures);
}
=======================================
--- /branches/bleeding_edge/test/cctest/test-reloc-info.cc Tue Mar 22
04:51:16 2011
+++ /branches/bleeding_edge/test/cctest/test-reloc-info.cc Fri Sep 9
15:39:47 2011
@@ -45,7 +45,7 @@
const int code_size = 10 * KB;
int relocation_info_size = 10 * KB;
const int buffer_size = code_size + relocation_info_size;
- SmartPointer<byte> buffer(new byte[buffer_size]);
+ SmartArrayPointer<byte> buffer(new byte[buffer_size]);
byte* pc = *buffer;
byte* buffer_end = *buffer + buffer_size;
=======================================
--- /branches/bleeding_edge/tools/gyp/v8.gyp Thu Sep 8 06:20:49 2011
+++ /branches/bleeding_edge/tools/gyp/v8.gyp Fri Sep 9 15:39:47 2011
@@ -425,7 +425,7 @@
'../../src/serialize.cc',
'../../src/serialize.h',
'../../src/small-pointer-list.h',
- '../../src/smart-pointer.h',
+ '../../src/smart-array-pointer.h',
'../../src/snapshot-common.cc',
'../../src/snapshot.h',
'../../src/spaces-inl.h',
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev