WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-74114-20111208115915.patch (text/plain), 7.18 KB, created by
Erik Arvidsson
on 2011-12-08 11:59:16 PST
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Erik Arvidsson
Created:
2011-12-08 11:59:16 PST
Size:
7.18 KB
patch
obsolete
>Subversion Revision: 102359 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index 2ca5cd9f0038abc985290c76b52191eeaef31a7e..f17fd599d523c761344c2258a966c886b81fd7e4 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,18 @@ >+2011-12-08 Erik Arvidsson <arv@chromium.org> >+ >+ CodeGeneratorV8: Fix issue with overloaded static conditional methods >+ https://bugs.webkit.org/show_bug.cgi?id=74114 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ The code generator was missing checks for Conditional for overloaded methods. >+ >+ * bindings/scripts/CodeGeneratorV8.pm: >+ (GenerateOverloadedFunctionCallback): Generate needed #ifdefs. >+ (GenerateFunctionCallback): Ditto. >+ * bindings/scripts/test/V8/V8TestObj.cpp: Wrap conditional methods with #ifdefs. >+ (WebCore::ConfigureV8TestObjTemplate): >+ > 2011-12-08 Nayan Kumar K <nayankk@motorola.com> > > Define DEBUG_GL_COMMANDS only in debug builds. >diff --git a/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm b/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm >index 75c415e0b585f04431030fd0a29706aae92a2478..aa329084d0212eb710f7bdbb97f0c8d6a20da8ed 100644 >--- a/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm >+++ b/Source/WebCore/bindings/scripts/CodeGeneratorV8.pm >@@ -1288,6 +1288,8 @@ sub GenerateOverloadedFunctionCallback > # declaration in the IDL. > > my $name = $function->signature->name; >+ my $conditionalString = GenerateConditionalString($function->signature); >+ push(@implContentDecls, "#if ${conditionalString}\n\n") if $conditionalString; > push(@implContentDecls, <<END); > static v8::Handle<v8::Value> ${name}Callback(const v8::Arguments& args) > { >@@ -1304,6 +1306,7 @@ END > return notHandledByInterceptor(); > END > push(@implContentDecls, "}\n\n"); >+ push(@implContentDecls, "#endif // ${conditionalString}\n\n") if $conditionalString; > } > > sub GenerateFunctionCallback >@@ -1331,6 +1334,8 @@ sub GenerateFunctionCallback > return; > } > >+ my $conditionalString = GenerateConditionalString($function->signature); >+ push(@implContentDecls, "#if ${conditionalString}\n\n") if $conditionalString; > push(@implContentDecls, <<END); > static v8::Handle<v8::Value> ${name}Callback(const v8::Arguments& args) > { >@@ -1425,6 +1430,7 @@ END > } > > push(@implContentDecls, "}\n\n"); >+ push(@implContentDecls, "#endif // ${conditionalString}\n\n") if $conditionalString; > } > > sub GenerateArgumentsCountCheck >@@ -2614,9 +2620,14 @@ END > next; > } > >+ my $conditionalString = GenerateConditionalString($function->signature); >+ push(@implContent, "#if ${conditionalString}\n") if $conditionalString; >+ > push(@implContent, <<END); > ${conditional}$template->Set(v8::String::New("$name"), v8::FunctionTemplate::New($callback, v8::Handle<v8::Value>(), ${signature})$property_attributes); > END >+ >+ push(@implContent, "#endif // ${conditionalString}\n") if $conditionalString; > $num_callbacks++; > } > >diff --git a/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp b/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp >index 36904577ba6dc0164258f2071ff78a7d907122ce..5246a4f59080f56d7de93c108aa041e3047eed56 100644 >--- a/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp >+++ b/Source/WebCore/bindings/scripts/test/V8/V8TestObj.cpp >@@ -1139,6 +1139,8 @@ static v8::Handle<v8::Value> methodWithCallbackAndOptionalArgCallback(const v8:: > return v8::Handle<v8::Value>(); > } > >+#if ENABLE(Condition1) >+ > static v8::Handle<v8::Value> conditionalMethod1Callback(const v8::Arguments& args) > { > INC_STATS("DOM.TestObj.conditionalMethod1"); >@@ -1146,6 +1148,10 @@ static v8::Handle<v8::Value> conditionalMethod1Callback(const v8::Arguments& arg > return v8String(imp->conditionalMethod1()); > } > >+#endif // ENABLE(Condition1) >+ >+#if ENABLE(Condition1) && ENABLE(Condition2) >+ > static v8::Handle<v8::Value> conditionalMethod2Callback(const v8::Arguments& args) > { > INC_STATS("DOM.TestObj.conditionalMethod2"); >@@ -1154,6 +1160,10 @@ static v8::Handle<v8::Value> conditionalMethod2Callback(const v8::Arguments& arg > return v8::Handle<v8::Value>(); > } > >+#endif // ENABLE(Condition1) && ENABLE(Condition2) >+ >+#if ENABLE(Condition1) || ENABLE(Condition2) >+ > static v8::Handle<v8::Value> conditionalMethod3Callback(const v8::Arguments& args) > { > INC_STATS("DOM.TestObj.conditionalMethod3"); >@@ -1162,6 +1172,8 @@ static v8::Handle<v8::Value> conditionalMethod3Callback(const v8::Arguments& arg > return v8::Handle<v8::Value>(); > } > >+#endif // ENABLE(Condition1) || ENABLE(Condition2) >+ > static v8::Handle<v8::Value> overloadedMethod1Callback(const v8::Arguments& args) > { > INC_STATS("DOM.TestObj.overloadedMethod1"); >@@ -1285,6 +1297,8 @@ static v8::Handle<v8::Value> classMethodWithOptionalCallback(const v8::Arguments > return v8::Integer::New(TestObj::classMethodWithOptional(arg)); > } > >+#if ENABLE(Condition1) >+ > static v8::Handle<v8::Value> overloadedMethod11Callback(const v8::Arguments& args) > { > INC_STATS("DOM.TestObj.overloadedMethod11"); >@@ -1295,6 +1309,10 @@ static v8::Handle<v8::Value> overloadedMethod11Callback(const v8::Arguments& arg > return v8::Handle<v8::Value>(); > } > >+#endif // ENABLE(Condition1) >+ >+#if ENABLE(Condition1) >+ > static v8::Handle<v8::Value> overloadedMethod12Callback(const v8::Arguments& args) > { > INC_STATS("DOM.TestObj.overloadedMethod12"); >@@ -1305,6 +1323,10 @@ static v8::Handle<v8::Value> overloadedMethod12Callback(const v8::Arguments& arg > return v8::Handle<v8::Value>(); > } > >+#endif // ENABLE(Condition1) >+ >+#if ENABLE(Condition1) >+ > static v8::Handle<v8::Value> overloadedMethod1Callback(const v8::Arguments& args) > { > INC_STATS("DOM.TestObj.overloadedMethod1"); >@@ -1316,6 +1338,8 @@ static v8::Handle<v8::Value> overloadedMethod1Callback(const v8::Arguments& args > return notHandledByInterceptor(); > } > >+#endif // ENABLE(Condition1) >+ > static v8::Handle<v8::Value> enabledAtRuntimeMethod1Callback(const v8::Arguments& args) > { > INC_STATS("DOM.TestObj.enabledAtRuntimeMethod1"); >@@ -1591,7 +1615,9 @@ static v8::Persistent<v8::FunctionTemplate> ConfigureV8TestObjTemplate(v8::Persi > proto->Set(v8::String::New("customArgsAndException"), v8::FunctionTemplate::New(TestObjInternal::customArgsAndExceptionCallback, v8::Handle<v8::Value>(), customArgsAndExceptionSignature)); > desc->Set(v8::String::New("classMethod"), v8::FunctionTemplate::New(TestObjInternal::classMethodCallback, v8::Handle<v8::Value>(), v8::Local<v8::Signature>())); > desc->Set(v8::String::New("classMethodWithOptional"), v8::FunctionTemplate::New(TestObjInternal::classMethodWithOptionalCallback, v8::Handle<v8::Value>(), v8::Local<v8::Signature>())); >+#if ENABLE(Condition1) > desc->Set(v8::String::New("overloadedMethod1"), v8::FunctionTemplate::New(TestObjInternal::overloadedMethod1Callback, v8::Handle<v8::Value>(), v8::Local<v8::Signature>())); >+#endif // ENABLE(Condition1) > if (RuntimeEnabledFeatures::enabledAtRuntimeMethod1Enabled()) > proto->Set(v8::String::New("enabledAtRuntimeMethod1"), v8::FunctionTemplate::New(TestObjInternal::enabledAtRuntimeMethod1Callback, v8::Handle<v8::Value>(), defaultSignature)); > if (RuntimeEnabledFeatures::featureNameEnabled())
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
abarth
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 74114
: 118439