2006-10-20 Nikolas Zimmermann <zimmermann@kde.org>
authorandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 20 Oct 2006 22:55:41 +0000 (22:55 +0000)
committerandersca <andersca@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 20 Oct 2006 22:55:41 +0000 (22:55 +0000)
        Reviewed and by Anders.

        Fix warnings in JS generation by killing the whole isRefPtr logic,
        and just using WTF::getPtr as Sam Weinig suggested. Also kill some
        places using get() where getPtr() is cleaner - not for m_impl.get().

        * CMakeLists.txt: Tiny cleanup + add deps for CodeGenerator(JS).pm on all IDLs.
        * bindings/scripts/CodeGeneratorJS.pm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@17176 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/CMakeLists.txt
WebCore/ChangeLog
WebCore/bindings/scripts/CodeGeneratorJS.pm

index d413834277a56c55b5857b2995a6fd14ac8beb10..b5e43c39a520b434bbaa8a80fcce9f8211566703 100644 (file)
@@ -91,10 +91,6 @@ IF (WEBKIT_USE_SVG_SUPPORT)
 SET(FEATURE_DEFINES_JAVASCRIPT ${FEATURE_DEFINES_JAVASCRIPT} SVG_SUPPORT)
 
 set(IDL_BINDINGS_SVG
-
-# TODO: Fix generation
-# ksvg2/svg/SVGFilterPrimitiveStandardAttributes.idl
-
   ksvg2/svg/SVGAElement.idl
   ksvg2/svg/SVGAngle.idl
   ksvg2/svg/SVGAnimateColorElement.idl
@@ -312,7 +308,7 @@ foreach (idl ${IDL_BINDINGS})
    get_filename_component(_basename ${idl} NAME_WE)
    add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/JS${_basename}.cpp ${CMAKE_CURRENT_BINARY_DIR}/JS${_basename}.h
       COMMAND perl -I${CMAKE_CURRENT_SOURCE_DIR}/bindings/scripts ${CMAKE_CURRENT_SOURCE_DIR}/bindings/scripts/generate-bindings.pl  --defines \"${FEATURE_DEFINES_JAVASCRIPT}\" --generator JS --include ${CMAKE_SOURCE_DIR}/WebCore/dom --include ${CMAKE_SOURCE_DIR}/WebCore/html --include ${CMAKE_SOURCE_DIR}/WebCore/xml --include ${CMAKE_SOURCE_DIR}/WebCore/ksvg2/svg --outputdir ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/${idl}
-      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${idl} )
+      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${idl} ${CMAKE_CURRENT_SOURCE_DIR}/bindings/scripts/CodeGenerator.pm ${CMAKE_CURRENT_SOURCE_DIR}/bindings/scripts/CodeGeneratorJS.pm)
    set(WebCore-unity-IDLGeneratedSources ${WebCore-unity-IDLGeneratedSources} ${CMAKE_CURRENT_BINARY_DIR}/JS${_basename}.cpp ${CMAKE_CURRENT_BINARY_DIR}/JS${_basename}.h )
 endforeach (idl)
 
index acbfdd2f83c7741cf172ee4e9bb6e5631e8feee7..aff91deeb9b7cdf993d066fb9c9ff8243e435a38 100644 (file)
@@ -1,3 +1,14 @@
+2006-10-20  Nikolas Zimmermann  <zimmermann@kde.org>
+
+        Reviewed and by Anders.
+
+        Fix warnings in JS generation by killing the whole isRefPtr logic,
+        and just using WTF::getPtr as Sam Weinig suggested. Also kill some
+        places using get() where getPtr() is cleaner - not for m_impl.get().
+
+        * CMakeLists.txt: Tiny cleanup + add deps for CodeGenerator(JS).pm on all IDLs.
+        * bindings/scripts/CodeGeneratorJS.pm:
+
 2006-10-20  Darin Adler  <darin@apple.com>
 
         - rolled out my loader change; caused world leak and possibly a plug-in crash
index 43cc375bcbbe8578eaf1678b823795caa6bd3941..fb05e95dc73259140be1881c9a7c497a79cfc62b 100644 (file)
@@ -490,6 +490,7 @@ sub GenerateImplementation
   
   push(@implContentHeader, "#include \"SVGAnimatedTemplate.h\"\n") if($className =~ /SVG/);
   push(@implContentHeader, "#include \"$className.h\"\n\n");
+  push(@implContentHeader, "#include <wtf/GetPtr.h>\n\n");
  
   AddIncludesForType($interfaceName);
 
@@ -874,16 +875,6 @@ sub GenerateImplementation
       my $numParameters = @{$function->parameters};
       my $hasOptionalArguments = 0;
 
-      # Special case for SVGLengthList / SVGTransformList / SVGPathSegList.
-      # These lists still use RefPtr objects, which will be changed in future.
-      # For now they need special treatment in the generation.
-      my $isRefPtr = 0;
-      if ($interfaceName eq "SVGLengthList" or
-          $interfaceName eq "SVGTransformList" or
-          $interfaceName eq "SVGPathSegList") {
-        $isRefPtr = 1;
-      }
-
       foreach my $parameter (@{$function->parameters}) {
         if (!$hasOptionalArguments && $parameter->extendedAttributes->{"Optional"}) {
           push(@implContent, "\n        int argsCount = args.size();\n");
@@ -892,7 +883,7 @@ sub GenerateImplementation
 
         if ($hasOptionalArguments) {
           push(@implContent, "        if (argsCount < " . ($paramIndex + 1) . ") {\n");
-          GenerateImplementationFunctionCall($function, $functionString, $paramIndex, "    " x 3, $isRefPtr);
+          GenerateImplementationFunctionCall($function, $functionString, $paramIndex, "    " x 3);
           push(@implContent, "        }\n\n");
         }
 
@@ -921,7 +912,7 @@ sub GenerateImplementation
       }
 
       push(@implContent, "\n");
-      GenerateImplementationFunctionCall($function, $functionString, $paramIndex, "    " x 2, $isRefPtr);
+      GenerateImplementationFunctionCall($function, $functionString, $paramIndex, "    " x 2);
 
       push(@implContent, "    }\n"); # end case
     }
@@ -976,7 +967,6 @@ sub GenerateImplementationFunctionCall()
     my $functionString = shift;
     my $paramIndex = shift;
     my $indent = shift;
-    my $isRefPtr = shift;
 
     if (@{$function->raisesExceptions}) {
         $functionString .= ", " if $paramIndex;
@@ -989,7 +979,7 @@ sub GenerateImplementationFunctionCall()
         push(@implContent, $indent . "setDOMException(exec, ec);\n") if @{$function->raisesExceptions};
         push(@implContent, $indent . "return jsUndefined();\n");
     } else {
-        push(@implContent, "\n" . $indent . "KJS::JSValue* result = " . NativeToJSValue($function->signature, $functionString, $isRefPtr) . ";\n");
+        push(@implContent, "\n" . $indent . "KJS::JSValue* result = " . NativeToJSValue($function->signature, $functionString) . ";\n");
         push(@implContent, $indent . "setDOMException(exec, ec);\n") if @{$function->raisesExceptions};
         push(@implContent, $indent . "return result;\n");
     }
@@ -1162,7 +1152,6 @@ sub NativeToJSValue
 {
     my $signature = shift;
     my $value = shift;
-    my $isRefPtr = shift;
  
     my $type = $codeGenerator->StripModule($signature->type);
 
@@ -1258,12 +1247,12 @@ sub NativeToJSValue
     } elsif ($type eq "HTMLCollection") {
         $implIncludes{"kjs_html.h"} = 1;
         $implIncludes{"HTMLCollection.h"} = 1;
-        return "getHTMLCollection(exec, $value.get())";
+        return "getHTMLCollection(exec, WTF::getPtr($value))";
     } elsif (($type eq "SVGLength" or
-              $type eq "SVGTransform") and $isRefPtr eq 1) {
+              $type eq "SVGTransform")) {
        $implIncludes{"JS$type.h"} = 1;
        $implIncludes{"$type.h"} = 1;
-       return "toJS(exec, $value.get())";
+       return "toJS(exec, WTF::getPtr($value))";
     } elsif ($type eq "SVGRect" or
              $type eq "SVGPoint" or
              $type eq "SVGNumber") {
@@ -1275,11 +1264,7 @@ sub NativeToJSValue
         $joinedName =~ s/Abs|Rel//;
         $implIncludes{"$joinedName.h"} = 1;
 
-        if ($isRefPtr eq 1) {
-            return "toJS(exec, $value.get())";
-        } else {
-            return "toJS(exec, $value)";
-        }
+        return "toJS(exec, WTF::getPtr($value))";
     } elsif ($codeGenerator->IsSVGAnimatedType($type)) {
         $implIncludes{"JS$type.h"} = 1;
         $implIncludes{"$type.h"} = 1;