Bug 49025

Summary: CodeGeneratorV8.pm produced code that fails to compile.
Product: WebKit Reporter: jreck
Component: WebCore Misc.Assignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, kling, steveblock, zimmermann
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Android   
OS: Android   
Attachments:
Description Flags
Added missing include and forward declaration where needed. none

Description jreck 2010-11-04 14:25:20 PDT
I have the following two build errors with code produced by CodeGeneratorV8.pm:

target thumb C++: libwebcore <= out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGZoomEvent.cpp
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGZoomEvent.cpp: In function 'v8::Handle<v8::Value> WebCore::SVGZoomEventInternal::zoomRectScreenAttrGetter(v8::Local<v8::String>, const v8::AccessorInfo&)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGZoomEvent.cpp:52: error: incomplete type 'WebCore::SVGPropertyTearOff<WebCore::FloatRect>' used in nested name specifier
make: *** [out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGZoomEvent.o] Error 1

and

target thumb C++: libwebcore <= out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp
In file included from out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp:23:
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:42: error: 'FloatRect' was not declared in this scope
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:42: error: template argument 1 is invalid
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:46: error: 'FloatRect' was not declared in this scope
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:46: error: template argument 1 is invalid
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:51: error: 'FloatRect' was not declared in this scope
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:51: error: template argument 1 is invalid
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h: In static member function 'static int* WebCore::V8SVGRect::toNative(v8::Handle<v8::Object>)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:44: error: 'FloatRect' was not declared in this scope
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:44: error: template argument 1 is invalid
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:44: error: expected '>' before '*' token
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:44: error: expected '(' before '*' token
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:44: error: expected primary-expression before '>' token
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:44: error: expected ')' before ';' token
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h: At global scope:
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:55: error: 'FloatRect' was not declared in this scope
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:55: error: template argument 1 is invalid
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:63: error: 'FloatRect' was not declared in this scope
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:63: error: template argument 1 is invalid
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:69: error: 'FloatRect' was not declared in this scope
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:69: error: template argument 1 is invalid
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:69: error: template argument 1 is invalid
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h: In function 'v8::Handle<v8::Value> WebCore::toV8(int)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:71: error: request for member 'get' in 'impl', which is of non-class type 'int'
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp: In function 'v8::Handle<v8::Value> WebCore::SVGRectInternal::xAttrGetter(v8::Local<v8::String>, const v8::AccessorInfo&)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp:46: error: cannot convert 'int*' to 'WebCore::SVGPropertyTearOff<WebCore::FloatRect>*' in initialization
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp: In function 'void WebCore::SVGRectInternal::xAttrSetter(v8::Local<v8::String>, v8::Local<v8::Value>, const v8::AccessorInfo&)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp:59: error: cannot convert 'int*' to 'WebCore::SVGPropertyTearOff<WebCore::FloatRect>*' in initialization
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp: In function 'v8::Handle<v8::Value> WebCore::SVGRectInternal::yAttrGetter(v8::Local<v8::String>, const v8::AccessorInfo&)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp:71: error: cannot convert 'int*' to 'WebCore::SVGPropertyTearOff<WebCore::FloatRect>*' in initialization
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp: In function 'void WebCore::SVGRectInternal::yAttrSetter(v8::Local<v8::String>, v8::Local<v8::Value>, const v8::AccessorInfo&)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp:84: error: cannot convert 'int*' to 'WebCore::SVGPropertyTearOff<WebCore::FloatRect>*' in initialization
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp: In function 'v8::Handle<v8::Value> WebCore::SVGRectInternal::widthAttrGetter(v8::Local<v8::String>, const v8::AccessorInfo&)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp:96: error: cannot convert 'int*' to 'WebCore::SVGPropertyTearOff<WebCore::FloatRect>*' in initialization
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp: In function 'void WebCore::SVGRectInternal::widthAttrSetter(v8::Local<v8::String>, v8::Local<v8::Value>, const v8::AccessorInfo&)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp:109: error: cannot convert 'int*' to 'WebCore::SVGPropertyTearOff<WebCore::FloatRect>*' in initialization
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp: In function 'v8::Handle<v8::Value> WebCore::SVGRectInternal::heightAttrGetter(v8::Local<v8::String>, const v8::AccessorInfo&)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp:121: error: cannot convert 'int*' to 'WebCore::SVGPropertyTearOff<WebCore::FloatRect>*' in initialization
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp: In function 'void WebCore::SVGRectInternal::heightAttrSetter(v8::Local<v8::String>, v8::Local<v8::Value>, const v8::AccessorInfo&)':
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp:134: error: cannot convert 'int*' to 'WebCore::SVGPropertyTearOff<WebCore::FloatRect>*' in initialization
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp: At global scope:
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.cpp:185: error: prototype for 'v8::Handle<v8::Object> WebCore::V8SVGRect::wrapSlow(WebCore::SVGPropertyTearOff<WebCore::FloatRect>*)' does not match any in class 'WebCore::V8SVGRect'
out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.h:51: error: candidate is: static v8::Handle<v8::Object> WebCore::V8SVGRect::wrapSlow(int*)
make: *** [out/target/product/stingray/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/bindings/V8SVGRect.o] Error 1
make: Leaving directory `/usr/local/google/webkitmerge'
Comment 1 jreck 2010-11-04 14:28:17 PDT
Created attachment 72981 [details]
Added missing include and forward declaration where needed.
Comment 2 Nikolas Zimmermann 2010-11-05 01:11:55 PDT
Comment on attachment 72981 [details]
Added missing include and forward declaration where needed.

Looks fine, why does it build on Chrome/V8 though? Hmm, anyhow, r+ as it's a build fix for you.
Comment 3 WebKit Commit Bot 2010-11-05 01:29:38 PDT
Comment on attachment 72981 [details]
Added missing include and forward declaration where needed.

Clearing flags on attachment: 72981

Committed r71396: <http://trac.webkit.org/changeset/71396>
Comment 4 WebKit Commit Bot 2010-11-05 01:29:43 PDT
All reviewed patches have been landed.  Closing bug.
Comment 5 Steve Block 2010-11-05 05:21:53 PDT
> Looks fine, why does it build on Chrome/V8 though? Hmm, anyhow, r+ as it's a build fix for you.
We've run into similar problems on Android before. Usually it's because Chromium picks up the required headers through other headers guarded by feature defines not enabled on Android.