Remove UsePointersEvenForNonNullableObjectArguments from SVG lists
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Apr 2016 17:08:31 +0000 (17:08 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Apr 2016 17:08:31 +0000 (17:08 +0000)
https://bugs.webkit.org/show_bug.cgi?id=156494

Reviewed by Chris Dumez.

* bindings/scripts/CodeGenerator.pm:
(ShouldPassWrapperByReference): For now, don't do this for any tear-off classes.
This includes the items stored in most SVG list classes.

* svg/SVGLengthList.idl: Removed UsePointersEvenForNonNullableObjectArguments.
* svg/SVGNumberList.idl: Ditto.
* svg/SVGPointList.idl: Ditto.
* svg/SVGTransformList.idl: Ditto.

* svg/SVGPathSegList.idl: Removed UsePointersEvenForNonNullableObjectArguments.
Marked the arguments nullable, and added FIXMEs about returning later since they
don't really need to be nullable. But fixing this requires some reworking of the
SVG list template and it's not urgent at this time. Preserves behavior where we
get an exception when passing null, it's just an SVG exception instead of TypeError.

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

Source/WebCore/ChangeLog
Source/WebCore/bindings/scripts/CodeGenerator.pm
Source/WebCore/svg/SVGLengthList.idl
Source/WebCore/svg/SVGNumberList.idl
Source/WebCore/svg/SVGPathSegList.idl
Source/WebCore/svg/SVGPointList.idl
Source/WebCore/svg/SVGTransformList.idl

index 19eb4ed..bad7f55 100644 (file)
@@ -1,3 +1,25 @@
+2016-04-12  Darin Adler  <darin@apple.com>
+
+        Remove UsePointersEvenForNonNullableObjectArguments from SVG lists
+        https://bugs.webkit.org/show_bug.cgi?id=156494
+
+        Reviewed by Chris Dumez.
+
+        * bindings/scripts/CodeGenerator.pm:
+        (ShouldPassWrapperByReference): For now, don't do this for any tear-off classes.
+        This includes the items stored in most SVG list classes.
+
+        * svg/SVGLengthList.idl: Removed UsePointersEvenForNonNullableObjectArguments.
+        * svg/SVGNumberList.idl: Ditto.
+        * svg/SVGPointList.idl: Ditto.
+        * svg/SVGTransformList.idl: Ditto.
+
+        * svg/SVGPathSegList.idl: Removed UsePointersEvenForNonNullableObjectArguments.
+        Marked the arguments nullable, and added FIXMEs about returning later since they
+        don't really need to be nullable. But fixing this requires some reworking of the
+        SVG list template and it's not urgent at this time. Preserves behavior where we
+        get an exception when passing null, it's just an SVG exception instead of TypeError.
+
 2016-04-12  Chris Dumez  <cdumez@apple.com>
 
         Lazily update tokens in DOMTokenList when the associated attribute value changes
index 8b3a86b..97ba87c 100644 (file)
@@ -896,6 +896,7 @@ sub ShouldPassWrapperByReference
     return 0 if $parameter->isNullable;
     return 0 if $parameter->isOptional and $parameter->extendedAttributes->{"Default"} and $parameter->extendedAttributes->{"Default"} eq "Undefined";
     return 0 if !$object->IsWrapperType($parameter->type) && !$object->IsTypedArrayType($parameter->type);
+    return 0 if $object->IsSVGTypeNeedingTearOff($parameter->type);
     return 0 if $interface->extendedAttributes->{"UsePointersEvenForNonNullableObjectArguments"};
     return 1;
 }
index ac7d7f6..c523c5c 100644 (file)
@@ -23,9 +23,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-[
-    UsePointersEvenForNonNullableObjectArguments,
-] interface SVGLengthList { 
+
+interface SVGLengthList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
@@ -36,4 +35,3 @@
     [StrictTypeChecking, RaisesException] SVGLength removeItem(unsigned long index);
     [StrictTypeChecking, RaisesException] SVGLength appendItem(SVGLength item);
 };
-
index 3e1ac39..f9411f9 100644 (file)
@@ -23,9 +23,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-[
-    UsePointersEvenForNonNullableObjectArguments,
-] interface SVGNumberList {
+
+interface SVGNumberList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
@@ -36,4 +35,3 @@
     [StrictTypeChecking, RaisesException] SVGNumber removeItem(unsigned long index);
     [StrictTypeChecking, RaisesException] SVGNumber appendItem(SVGNumber item);
 };
-
index c4bb826..adeee3d 100644 (file)
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-[
-    UsePointersEvenForNonNullableObjectArguments,
-] interface SVGPathSegList {
+
+interface SVGPathSegList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
-    [StrictTypeChecking, RaisesException] SVGPathSeg initialize(SVGPathSeg newItem);
+    [StrictTypeChecking, RaisesException] SVGPathSeg initialize(SVGPathSeg? newItem); // FIXME: Should not be nullable.
     [StrictTypeChecking, RaisesException] SVGPathSeg getItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPathSeg insertItemBefore(SVGPathSeg newItem, unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPathSeg replaceItem(SVGPathSeg newItem, unsigned long index);
+    [StrictTypeChecking, RaisesException] SVGPathSeg insertItemBefore(SVGPathSeg? newItem, unsigned long index); // FIXME: Should not be nullable.
+    [StrictTypeChecking, RaisesException] SVGPathSeg replaceItem(SVGPathSeg? newItem, unsigned long index); // FIXME: Should not be nullable.
     [StrictTypeChecking, RaisesException] SVGPathSeg removeItem(unsigned long index);
-    [StrictTypeChecking, RaisesException] SVGPathSeg appendItem(SVGPathSeg newItem);
+    [StrictTypeChecking, RaisesException] SVGPathSeg appendItem(SVGPathSeg? newItem); // FIXME: Should not be nullable.
 };
-
index 2dd4e27..b511244 100644 (file)
@@ -22,9 +22,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-[
-    UsePointersEvenForNonNullableObjectArguments,
-] interface SVGPointList {
+
+interface SVGPointList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
@@ -35,4 +34,3 @@
     [StrictTypeChecking, RaisesException] SVGPoint removeItem(unsigned long index);
     [StrictTypeChecking, RaisesException] SVGPoint appendItem(SVGPoint item);
 };
-
index 44c4a41..ac29425 100644 (file)
@@ -23,9 +23,8 @@
  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
-[
-    UsePointersEvenForNonNullableObjectArguments,
-] interface SVGTransformList {
+
+interface SVGTransformList {
     readonly attribute unsigned long numberOfItems;
 
     [RaisesException] void clear();
@@ -40,4 +39,3 @@
 
     [RaisesException] SVGTransform consolidate();
 };
-