diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-30 20:01:29 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-30 20:01:29 +0000 |
commit | c47301e817ee37825b18ea9e1e9fdd2aa7ce6e0f (patch) | |
tree | 167da4c68099a2fa718cebbbeb7d6c7c188ce134 | |
parent | 6493026cd82ad51b538050ffd9e6eafa203026f3 (diff) | |
download | chromium_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.cc | 6 |
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")); |