summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2012-08-28 11:13:34 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-08-28 11:13:34 -0700
commitf39a3cbeac21b1d076bee9cbc25bec1d981f6aab (patch)
tree1a9209fe172aae8e3edc3bec4f0d30942fbee8d1 /Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp
parentbb7f19e094c0208180bc6f9c1b803cd29c507c8f (diff)
parentf2b8b88d1a8fefaf6de6c6bce24ae092abdf9584 (diff)
downloadexternal_webkit-f39a3cbeac21b1d076bee9cbc25bec1d981f6aab.zip
external_webkit-f39a3cbeac21b1d076bee9cbc25bec1d981f6aab.tar.gz
external_webkit-f39a3cbeac21b1d076bee9cbc25bec1d981f6aab.tar.bz2
am f2b8b88d: am 51619153: Merge "Fix memory leak caused by CSSRuleList wrapper"
* commit 'f2b8b88d1a8fefaf6de6c6bce24ae092abdf9584': Fix memory leak caused by CSSRuleList wrapper
Diffstat (limited to 'Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp')
-rw-r--r--Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp b/Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp
index d83573f..2909269 100644
--- a/Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp
+++ b/Source/WebCore/bindings/v8/V8HiddenPropertyName.cpp
@@ -31,6 +31,9 @@
#include "config.h"
#include "V8HiddenPropertyName.h"
+#include <string.h>
+#include <wtf/Vector.h>
+
namespace WebCore {
#define V8_AS_STRING(x) V8_AS_STRING_IMPL(x)
@@ -39,12 +42,22 @@ namespace WebCore {
#define V8_DEFINE_PROPERTY(name) \
v8::Handle<v8::String> V8HiddenPropertyName::name() \
{ \
- static v8::Persistent<v8::String>* string = createString("WebCore::V8HiddenPropertyName::" V8_AS_STRING(name)); \
+ static v8::Persistent<v8::String>* string = createString("WebCore::HiddenProperty::" V8_AS_STRING(name)); \
return *string; \
}
V8_HIDDEN_PROPERTIES(V8_DEFINE_PROPERTY);
+static const char hiddenReferenceNamePrefix[] = "WebCore::HiddenReference::";
+
+v8::Handle<v8::String> V8HiddenPropertyName::hiddenReferenceName(const char* name)
+{
+ Vector<char, 64> prefixedName;
+ prefixedName.append(hiddenReferenceNamePrefix, sizeof(hiddenReferenceNamePrefix) - 1);
+ prefixedName.append(name, strlen(name));
+ return v8::String::NewSymbol(prefixedName.data(), static_cast<int>(prefixedName.size()));
+}
+
v8::Persistent<v8::String>* V8HiddenPropertyName::createString(const char* key)
{
v8::HandleScope scope;