summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-30 20:01:29 +0000
committertfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-30 20:01:29 +0000
commitc47301e817ee37825b18ea9e1e9fdd2aa7ce6e0f (patch)
tree167da4c68099a2fa718cebbbeb7d6c7c188ce134
parent6493026cd82ad51b538050ffd9e6eafa203026f3 (diff)
downloadchromium_src-c47301e817ee37825b18ea9e1e9fdd2aa7ce6e0f.zip
chromium_src-c47301e817ee37825b18ea9e1e9fdd2aa7ce6e0f.tar.gz
chromium_src-c47301e817ee37825b18ea9e1e9fdd2aa7ce6e0f.tar.bz2
renderer: Fix referencing v8::Array and v8::Object using raw pointer.
We should never use raw pointers of v8 objects in client code. We should always use v8::Handle and it subclasses, v8::Local and v8::Persistent, whenever referencing them. Any allocation from v8 heap can make raw pointers invalid. BUG=None TEST=None R=mnaganov@chromium.org TBR=tonyg@chromium.org Review URL: http://codereview.chromium.org/7779012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98865 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/renderer/searchbox_extension.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/chrome/renderer/searchbox_extension.cc b/chrome/renderer/searchbox_extension.cc
index 8a2c502..42641d1 100644
--- a/chrome/renderer/searchbox_extension.cc
+++ b/chrome/renderer/searchbox_extension.cc
@@ -293,7 +293,8 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::SetSuggestions(
if (args.Length() && args[0]->IsArray()) {
// For backwards compatibility, also accept an array of strings.
// TODO(tonyg): Remove this when it is confirmed to be unused.
- v8::Array* suggestions_array = v8::Array::Cast(*args[0]);
+ v8::Local<v8::Array> suggestions_array =
+ v8::Local<v8::Array>::Cast(args[0]);
uint32_t length = suggestions_array->Length();
for (uint32_t i = 0; i < length; i++) {
std::string suggestion = *v8::String::Utf8Value(
@@ -303,7 +304,8 @@ v8::Handle<v8::Value> SearchBoxExtensionWrapper::SetSuggestions(
}
} else if (args.Length() && args[0]->IsObject()) {
// Standard version, object argument.
- v8::Object* suggestion_json = static_cast<v8::Object*>(*args[0]);
+ v8::Local<v8::Object> suggestion_json =
+ v8::Local<v8::Object>::Cast(args[0]);
v8::Local<v8::Value> suggestions_field =
suggestion_json->Get(v8::String::New("suggestions"));