Reviewed by Tim Hatcher.
authordarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 31 Aug 2006 00:20:18 +0000 (00:20 +0000)
committerdarin <darin@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 31 Aug 2006 00:20:18 +0000 (00:20 +0000)
        - eliminated the need for UsesPassRefPtr in IDL files
        - got rid of the category mechanism for ObjC generated DOM headers
          (after discussions with Tim H where we decided it's not needed)
        - simplified use of macro inside ObjC generated code

        * ForwardingHeaders/wtf/GetPtr.h: Added.

        * bindings/scripts/CodeGeneratorObjC.pm: Removed code to handle
        categories. Eliminated use of DOM_cast since that's for the protection
        of human programmers -- the script won't make mistakes that it needs
        to catch. Changed macro to always be named IMPL instead of incorporating
        the class name. Use WTF::getPtr to extract the pointer, and removed the
        code that uses .get() to extract the pointer in the PassRefPtr case.

        * dom/Attr.idl: Removed all uses of UsesPassRefPtr and ObjCCatagory.
        * dom/DOMImplementation.idl: Ditto.
        * dom/Document.idl: Ditto.
        * dom/Element.idl: Ditto.
        * dom/NamedNodeMap.idl: Ditto.
        * html/HTMLDocument.idl: Ditto.
        * html/HTMLElement.idl: Ditto.
        * html/HTMLFormElement.idl: Ditto.
        * html/HTMLMapElement.idl: Ditto.
        * html/HTMLSelectElement.idl: Ditto.
        * html/HTMLTableElement.idl: Ditto.
        * html/HTMLTableRowElement.idl: Ditto.
        * html/HTMLTableSectionElement.idl: Ditto.

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

16 files changed:
WebCore/ChangeLog
WebCore/ForwardingHeaders/wtf/GetPtr.h [new file with mode: 0644]
WebCore/bindings/scripts/CodeGeneratorObjC.pm
WebCore/dom/Attr.idl
WebCore/dom/DOMImplementation.idl
WebCore/dom/Document.idl
WebCore/dom/Element.idl
WebCore/dom/NamedNodeMap.idl
WebCore/html/HTMLDocument.idl
WebCore/html/HTMLElement.idl
WebCore/html/HTMLFormElement.idl
WebCore/html/HTMLMapElement.idl
WebCore/html/HTMLSelectElement.idl
WebCore/html/HTMLTableElement.idl
WebCore/html/HTMLTableRowElement.idl
WebCore/html/HTMLTableSectionElement.idl

index 8064cb94c27f49e82e42bf702ccbaeafd5b49ab3..4e972ba0096c34aae08120f7b0d9ddb68b700cf6 100644 (file)
@@ -1,3 +1,35 @@
+2006-08-30  Darin Adler  <darin@apple.com>
+
+        Reviewed by Tim Hatcher.
+
+        - eliminated the need for UsesPassRefPtr in IDL files
+        - got rid of the category mechanism for ObjC generated DOM headers
+          (after discussions with Tim H where we decided it's not needed)
+        - simplified use of macro inside ObjC generated code
+
+        * ForwardingHeaders/wtf/GetPtr.h: Added.
+
+        * bindings/scripts/CodeGeneratorObjC.pm: Removed code to handle
+        categories. Eliminated use of DOM_cast since that's for the protection
+        of human programmers -- the script won't make mistakes that it needs
+        to catch. Changed macro to always be named IMPL instead of incorporating
+        the class name. Use WTF::getPtr to extract the pointer, and removed the
+        code that uses .get() to extract the pointer in the PassRefPtr case.
+
+        * dom/Attr.idl: Removed all uses of UsesPassRefPtr and ObjCCatagory.
+        * dom/DOMImplementation.idl: Ditto.
+        * dom/Document.idl: Ditto.
+        * dom/Element.idl: Ditto.
+        * dom/NamedNodeMap.idl: Ditto.
+        * html/HTMLDocument.idl: Ditto.
+        * html/HTMLElement.idl: Ditto.
+        * html/HTMLFormElement.idl: Ditto.
+        * html/HTMLMapElement.idl: Ditto.
+        * html/HTMLSelectElement.idl: Ditto.
+        * html/HTMLTableElement.idl: Ditto.
+        * html/HTMLTableRowElement.idl: Ditto.
+        * html/HTMLTableSectionElement.idl: Ditto.
+
 2006-08-30  Brady Eidson  <beidson@apple.com>
 
         Reviewed by John
 2006-08-30  Brady Eidson  <beidson@apple.com>
 
         Reviewed by John
diff --git a/WebCore/ForwardingHeaders/wtf/GetPtr.h b/WebCore/ForwardingHeaders/wtf/GetPtr.h
new file mode 100644 (file)
index 0000000..61baf6d
--- /dev/null
@@ -0,0 +1 @@
+#import <JavaScriptCore/GetPtr.h>
index a24a2cf4081d9ad2c7f6166b4421ba0d58c28f2d..fbb97295a0ed6f515131193fb30d1e731fbdbd69 100644 (file)
@@ -1,13 +1,9 @@
 # 
 # 
-# KDOM IDL parser
-#
 # Copyright (C) 2005 Nikolas Zimmermann <wildfox@kde.org>
 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com> 
 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
 # Copyright (C) 2006 Apple Computer, Inc.
 #
 # Copyright (C) 2005 Nikolas Zimmermann <wildfox@kde.org>
 # Copyright (C) 2006 Anders Carlsson <andersca@mac.com> 
 # Copyright (C) 2006 Samuel Weinig <sam.weinig@gmail.com>
 # Copyright (C) 2006 Apple Computer, Inc.
 #
-# This file is part of the KDE project
-# 
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Library General Public
 # License as published by the Free Software Foundation; either
 # This library is free software; you can redistribute it and/or
 # modify it under the terms of the GNU Library General Public
 # License as published by the Free Software Foundation; either
@@ -191,7 +187,7 @@ sub GetClassName
         return $name;
     }
 
         return $name;
     }
 
-    # Default, assume objective-c type has the same type name as
+    # Default, assume Objective-C type has the same type name as
     # idl type prefixed with "DOM".
     return "DOM" . $name;
 }
     # idl type prefixed with "DOM".
     return "DOM" . $name;
 }
@@ -447,8 +443,6 @@ sub GenerateHeader
         push(@headerContent, "\n};\n");        
     }
     
         push(@headerContent, "\n};\n");        
     }
     
-    my %hashOfCatagories = ();
-    
     # - Begin @interface 
     push(@headerContent, "\n\@interface $className : $parentClassName\n");
 
     # - Begin @interface 
     push(@headerContent, "\n\@interface $className : $parentClassName\n");
 
@@ -472,35 +466,22 @@ sub GenerateHeader
 
             my $attributeType = GetObjCType($attribute->signature->type);
             my $attributeIsReadonly = ($attribute->type =~ /^readonly/);
 
             my $attributeType = GetObjCType($attribute->signature->type);
             my $attributeIsReadonly = ($attribute->type =~ /^readonly/);
-            my $catagory = $attribute->signature->extendedAttributes->{"ObjCCatagory"};
 
             if ($ENV{"MACOSX_DEPLOYMENT_TARGET"} >= 10.5) {
                 my $property = "\@property" . ($attributeIsReadonly ? "(readonly)" : "") . " " . $attributeType . ($attributeType =~ /\*$/ ? "" : " ") . $attributeName . ";\n";
 
 
             if ($ENV{"MACOSX_DEPLOYMENT_TARGET"} >= 10.5) {
                 my $property = "\@property" . ($attributeIsReadonly ? "(readonly)" : "") . " " . $attributeType . ($attributeType =~ /\*$/ ? "" : " ") . $attributeName . ";\n";
 
-                if ($catagory) {
-                    push(@{ $hashOfCatagories{$catagory} }, $property);
-                } else {
-                    push(@headerAttributes, $property);
-                }
+                push(@headerAttributes, $property);
             } else {
                 # - GETTER
                 my $getter = "- (" . $attributeType . ")" . $attributeName . ";\n";
 
             } else {
                 # - GETTER
                 my $getter = "- (" . $attributeType . ")" . $attributeName . ";\n";
 
-                if ($catagory) {
-                    push(@{ $hashOfCatagories{$catagory} }, $getter);
-                } else {
-                    push(@headerAttributes, $getter);
-                }
+                push(@headerAttributes, $getter);
 
                 # - SETTER
                 if (!$attributeIsReadonly) {
                     my $setter = "- (void)set" . ucfirst($attributeName) . ":(" . $attributeType . ")new" . ucfirst($attributeName) . ";\n";
                     
 
                 # - SETTER
                 if (!$attributeIsReadonly) {
                     my $setter = "- (void)set" . ucfirst($attributeName) . ":(" . $attributeType . ")new" . ucfirst($attributeName) . ";\n";
                     
-                    if ($catagory) {
-                        push(@{ $hashOfCatagories{$catagory} }, $setter);
-                    } else {
-                        push(@headerAttributes, $setter);
-                    }
+                    push(@headerAttributes, $setter);
                 }
             }
         }
                 }
             }
         }
@@ -522,7 +503,6 @@ sub GenerateHeader
             my $functionName = $function->signature->name;
             my $returnType = GetObjCType($function->signature->type);
             my $numberOfParameters = @{$function->parameters};
             my $functionName = $function->signature->name;
             my $returnType = GetObjCType($function->signature->type);
             my $numberOfParameters = @{$function->parameters};
-            my $catagory = $function->signature->extendedAttributes->{"ObjCCatagory"};
 
             my $output = "- ($returnType)$functionName";
             foreach my $param (@{$function->parameters}) {
 
             my $output = "- ($returnType)$functionName";
             foreach my $param (@{$function->parameters}) {
@@ -536,11 +516,7 @@ sub GenerateHeader
             $output =~ s/\s+$//;
             $output .= ";\n";
     
             $output =~ s/\s+$//;
             $output .= ";\n";
     
-            if ($catagory) {
-                push(@{ $hashOfCatagories{$catagory} }, $output);
-            } else {
-                push(@headerFunctions, $output);
-            }
+            push(@headerFunctions, $output);
         }
 
         if (@headerFunctions > 0) {
         }
 
         if (@headerFunctions > 0) {
@@ -551,24 +527,6 @@ sub GenerateHeader
 
     # - End @interface 
     push(@headerContent, "\@end\n");
 
     # - End @interface 
     push(@headerContent, "\@end\n");
-    
-    # Add additional Catagories (if any)
-    if (scalar(keys(%hashOfCatagories))) {
-        foreach(sort(keys(%hashOfCatagories))) {
-            my $catagory = $_;
-
-            # - Begin @interface 
-            push(@headerContent, "\n\@interface $className ($catagory)\n");
-            
-            foreach (@{ $hashOfCatagories{$catagory} }) {
-                my $declaration = $_;
-                push(@headerContent, $declaration);
-            }
-            
-            # - End @interface
-            push(@headerContent, "\@end\n");
-        }
-    }
 }
 
 sub GenerateImplementation
 }
 
 sub GenerateImplementation
@@ -593,10 +551,10 @@ sub GenerateImplementation
     push(@implContentHeader, "#import \"$className.h\"\n\n");
 
     if ($hasFunctionsOrAttributes) {
     push(@implContentHeader, "#import \"$className.h\"\n\n");
 
     if ($hasFunctionsOrAttributes) {
-        # NEEDED for DOM_CAST
-        push(@implContentHeader, "#import \"DOMInternal.h\" // needed for DOM_cast<>\n");
+        push(@implContentHeader, "#import \"DOMInternal.h\"\n");
+        push(@implContentHeader, "#import <wtf/GetPtr.h>\n");
         
         
-        # include module dependant internal interfaces.
+        # include module-dependent internal interfaces.
         if ($module eq "html") {
             # HTML module internal interfaces
             push(@implContentHeader, "#import \"DOMHTMLInternal.h\"\n");
         if ($module eq "html") {
             # HTML module internal interfaces
             push(@implContentHeader, "#import \"DOMHTMLInternal.h\"\n");
@@ -624,26 +582,23 @@ sub GenerateImplementation
     # START implementation
     push(@implContent, "\n\@implementation $className\n\n");
 
     # START implementation
     push(@implContent, "\n\@implementation $className\n\n");
 
-    # ADD INTERNAL CASTING MACRO
-    my $implementation = "IMPL_" . uc($interfaceName);
-
     if ($hasFunctionsOrAttributes) {
         if ($parentImplClassName eq "Object") {
             # Only generate 'dealloc' and 'finalize' methods for direct subclasses of DOMObject.
 
     if ($hasFunctionsOrAttributes) {
         if ($parentImplClassName eq "Object") {
             # Only generate 'dealloc' and 'finalize' methods for direct subclasses of DOMObject.
 
-            push(@implContent, "#define $implementation DOM_cast<$implClassName *>(_internal)\n\n");
+            push(@implContent, "#define IMPL reinterpret_cast<$implClassName*>(_internal)\n\n");
 
             push(@implContent, "- (void)dealloc\n");
             push(@implContent, "{\n");
             push(@implContent, "    if (_internal)\n");
 
             push(@implContent, "- (void)dealloc\n");
             push(@implContent, "{\n");
             push(@implContent, "    if (_internal)\n");
-            push(@implContent, "        $implementation->deref();\n");
+            push(@implContent, "        IMPL->deref();\n");
             push(@implContent, "    [super dealloc];\n");
             push(@implContent, "}\n\n");
 
             push(@implContent, "- (void)finalize\n");
             push(@implContent, "{\n");
             push(@implContent, "    if (_internal)\n");
             push(@implContent, "    [super dealloc];\n");
             push(@implContent, "}\n\n");
 
             push(@implContent, "- (void)finalize\n");
             push(@implContent, "{\n");
             push(@implContent, "    if (_internal)\n");
-            push(@implContent, "        $implementation->deref();\n");
+            push(@implContent, "        IMPL->deref();\n");
             push(@implContent, "    [super finalize];\n");
             push(@implContent, "}\n\n");
         } else {
             push(@implContent, "    [super finalize];\n");
             push(@implContent, "}\n\n");
         } else {
@@ -656,7 +611,7 @@ sub GenerateImplementation
                 $internalBaseType = "WebCore::Node"
             }
 
                 $internalBaseType = "WebCore::Node"
             }
 
-            push(@implContent, "#define $implementation static_cast<$implClassName *>(DOM_cast<$internalBaseType *>(_internal))\n\n");
+            push(@implContent, "#define IMPL static_cast<$implClassName*>(reinterpret_cast<$internalBaseType*>(_internal))\n\n");
         }
     }
 
         }
     }
 
@@ -689,7 +644,7 @@ sub GenerateImplementation
                 die "We should not have any getter exceptions yet!";
             }
             
                 die "We should not have any getter exceptions yet!";
             }
             
-            my $getterContentHead = "$implementation->$attributeName(";
+            my $getterContentHead = "IMPL->$attributeName(";
             my $getterContentTail = ")";
 
             my $attributeTypeSansPtr = $attributeType;
             my $getterContentTail = ")";
 
             my $attributeTypeSansPtr = $attributeType;
@@ -699,20 +654,16 @@ sub GenerateImplementation
             # Special cases
             if ($attributeTypeSansPtr eq "DOMImplementation") {
                 # FIXME: We have to special case DOMImplementation until DOMImplementationFront is removed
             # Special cases
             if ($attributeTypeSansPtr eq "DOMImplementation") {
                 # FIXME: We have to special case DOMImplementation until DOMImplementationFront is removed
-                $getterContentHead = "[$attributeTypeSansPtr $typeMaker:implementationFront($implementation";
+                $getterContentHead = "[$attributeTypeSansPtr $typeMaker:implementationFront(IMPL";
                 $getterContentTail .= "]";
             } elsif ($attributeName =~ /(\w+)DisplayString$/) {
                 my $attributeToDisplay = $1;
                 $getterContentTail .= "]";
             } elsif ($attributeName =~ /(\w+)DisplayString$/) {
                 my $attributeToDisplay = $1;
-                $getterContentHead = "$implementation->$attributeToDisplay().replace(\'\\\\\', [self _element]->document()->backslashAsCurrencySymbol()";
+                $getterContentHead = "IMPL->$attributeToDisplay().replace(\'\\\\\', [self _element]->document()->backslashAsCurrencySymbol()";
                 $implIncludes{"Document.h"} = 1;
             } elsif ($typeMaker ne "") {
                 # Surround getter with TypeMaker
                 $implIncludes{"Document.h"} = 1;
             } elsif ($typeMaker ne "") {
                 # Surround getter with TypeMaker
-                $getterContentHead = "[$attributeTypeSansPtr $typeMaker:" . $getterContentHead;
-                $getterContentTail .= "]";
-            }
-            
-            if ($attribute->signature->extendedAttributes->{"UsesPassRefPtr"}) {
-                $getterContentTail = ").get(" . $getterContentTail;
+                $getterContentHead = "[$attributeTypeSansPtr $typeMaker:WTF::getPtr(" . $getterContentHead;
+                $getterContentTail .= ")]";
             }
             
             my $getterContent;
             }
             
             my $getterContent;
@@ -762,10 +713,10 @@ sub GenerateImplementation
                     push(@implContent, "    ASSERT($argName);\n\n");
 
                     push(@implContent, "    $exceptionInit\n");
                     push(@implContent, "    ASSERT($argName);\n\n");
 
                     push(@implContent, "    $exceptionInit\n");
-                    push(@implContent, "    $implementation->$attributeName($argName, ec);\n");
+                    push(@implContent, "    IMPL->$attributeName($argName, ec);\n");
                     push(@implContent, "    $exceptionRaiseOnError\n");
                 } else {
                     push(@implContent, "    $exceptionRaiseOnError\n");
                 } else {
-                    push(@implContent, "    $implementation->$attributeName($argName);\n");
+                    push(@implContent, "    IMPL->$attributeName($argName);\n");
                 }
 
                 push(@implContent, "}\n\n");
                 }
 
                 push(@implContent, "}\n\n");
@@ -827,7 +778,7 @@ sub GenerateImplementation
 
             if ($returnType eq "void") {
                 # Special case 'void' return type.
 
             if ($returnType eq "void") {
                 # Special case 'void' return type.
-                my $functionContentHead = "$implementation->$functionName(";
+                my $functionContentHead = "IMPL->$functionName(";
                 my $functionContentTail = ");";
                 my $content = "";
 
                 my $functionContentTail = ");";
                 my $content = "";
 
@@ -854,7 +805,7 @@ sub GenerateImplementation
                     push(@functionContent, "    $content\n");
                 }
             } else {
                     push(@functionContent, "    $content\n");
                 }
             } else {
-                my $functionContentHead = $implementation . "->" . $functionName . "(";
+                my $functionContentHead = "IMPL->" . $functionName . "(";
                 my $functionContentTail = ")";
 
                 my $typeMaker = GetObjCTypeMaker($function->signature->type);
                 my $functionContentTail = ")";
 
                 my $typeMaker = GetObjCTypeMaker($function->signature->type);
@@ -870,12 +821,8 @@ sub GenerateImplementation
                     }
 
                     # Surround getter with TypeMaker
                     }
 
                     # Surround getter with TypeMaker
-                    $functionContentHead = "[$returnTypeClass $typeMaker:" . $functionContentHead;
-                    $functionContentTail .= "]";
-                }
-
-                if ($function->signature->extendedAttributes->{"UsesPassRefPtr"}) {
-                    $functionContentTail = ").get(" . $functionContentTail;
+                    $functionContentHead = "[$returnTypeClass $typeMaker:WTF::getPtr(" . $functionContentHead;
+                    $functionContentTail .= ")]";
                 }
 
                 my $content = "";
                 }
 
                 my $content = "";
index 736fb3e9bdd3c4023053e57f6ad48ca605c087fb..2a258a649587a55645ebae5098fe84c4f65143da 100644 (file)
@@ -35,7 +35,7 @@ module core {
         
         // extensions
 
         
         // extensions
 
-        readonly attribute [ObjCCatagory=DOMAttrExtensions] CSSStyleDeclaration style;
+        readonly attribute CSSStyleDeclaration style;
     };
 
 }
     };
 
 }
index 1dbcad05072e1b210ddee6fe6003b1efd5b1036c..aa9930d76c9856e6fe14a0ff357067486f4e998a 100644 (file)
@@ -29,24 +29,24 @@ module core {
 
         // DOM Level 2
 
 
         // DOM Level 2
 
-        [UsesPassRefPtr] DocumentType createDocumentType(in DOMString qualifiedName,
+        DocumentType createDocumentType(in DOMString qualifiedName,
                                                          in DOMString publicId,
                                                          in DOMString systemId)
             raises(DOMException);
                                                          in DOMString publicId,
                                                          in DOMString systemId)
             raises(DOMException);
-        [UsesPassRefPtr] Document createDocument(in [ConvertNullToNullString] DOMString namespaceURI, 
+        Document createDocument(in [ConvertNullToNullString] DOMString namespaceURI, 
                                                  in [ConvertNullToNullString] DOMString qualifiedName, 
                                                  in [ConvertNullToNullString] DocumentType doctype)
             raises(DOMException);
 
         // DOMImplementationCSS interface from DOM Level 2 CSS
 
                                                  in [ConvertNullToNullString] DOMString qualifiedName, 
                                                  in [ConvertNullToNullString] DocumentType doctype)
             raises(DOMException);
 
         // DOMImplementationCSS interface from DOM Level 2 CSS
 
-        [ObjCCatagory=DOMImplementationCSS, UsesPassRefPtr] CSSStyleSheet createCSSStyleSheet(in DOMString title,
+        CSSStyleSheet createCSSStyleSheet(in DOMString title,
                                                                                               in DOMString media)
             raises(DOMException);
 
         // HTMLDOMImplementation interface from DOM Level 2 HTML
 
                                                                                               in DOMString media)
             raises(DOMException);
 
         // HTMLDOMImplementation interface from DOM Level 2 HTML
 
-        [ObjCCatagory=DOMImplementationExtensions, UsesPassRefPtr] HTMLDocument createHTMLDocument(in DOMString title);
+        HTMLDocument createHTMLDocument(in DOMString title);
     };
 
 }
     };
 
 }
index 67ca43c36ccb01109750da4309258db24af8f9dc..130269d205c39aedbcbb2570954a940aeecc66ed 100644 (file)
@@ -30,57 +30,57 @@ module core {
         
         readonly attribute Element documentElement;
         
         
         readonly attribute Element documentElement;
         
-        [UsesPassRefPtr] Element createElement(in DOMString tagName)
+        Element createElement(in DOMString tagName)
             raises (DOMException);
         
             raises (DOMException);
         
-        [UsesPassRefPtr] DocumentFragment createDocumentFragment();
+        DocumentFragment createDocumentFragment();
         
         
-        [UsesPassRefPtr] Text createTextNode(in DOMString data);
+        Text createTextNode(in DOMString data);
         
         
-        [UsesPassRefPtr] Comment createComment(in DOMString data);
+        Comment createComment(in DOMString data);
         
         
-        [UsesPassRefPtr] CDATASection createCDATASection(in DOMString data)
+        CDATASection createCDATASection(in DOMString data)
             raises(DOMException);
         
             raises(DOMException);
         
-        [UsesPassRefPtr] ProcessingInstruction createProcessingInstruction(in DOMString target, 
+        ProcessingInstruction createProcessingInstruction(in DOMString target, 
                                                                            in DOMString data)
             raises (DOMException);
         
                                                                            in DOMString data)
             raises (DOMException);
         
-        [UsesPassRefPtr] Attr createAttribute(in DOMString name)
+        Attr createAttribute(in DOMString name)
             raises (DOMException);
         
             raises (DOMException);
         
-        [UsesPassRefPtr] EntityReference createEntityReference(in DOMString name)
+        EntityReference createEntityReference(in DOMString name)
             raises(DOMException);
         
             raises(DOMException);
         
-        [UsesPassRefPtr] NodeList getElementsByTagName(in DOMString tagname);
+        NodeList getElementsByTagName(in DOMString tagname);
         
         // DOM Level 2 Core
         
         
         // DOM Level 2 Core
         
-        [UsesPassRefPtr] Node importNode(in Node importedNode,
+        Node importNode(in Node importedNode,
                                          in boolean deep)
             raises (DOMException);
         
                                          in boolean deep)
             raises (DOMException);
         
-        [UsesPassRefPtr] Element createElementNS(in DOMString namespaceURI,
+        Element createElementNS(in DOMString namespaceURI,
                                                  in DOMString qualifiedName)
             raises (DOMException);
         
                                                  in DOMString qualifiedName)
             raises (DOMException);
         
-        [UsesPassRefPtr] Attr createAttributeNS(in DOMString namespaceURI,
+        Attr createAttributeNS(in DOMString namespaceURI,
                                                 in DOMString qualifiedName)
             raises (DOMException);
         
                                                 in DOMString qualifiedName)
             raises (DOMException);
         
-        [UsesPassRefPtr] NodeList getElementsByTagNameNS(in DOMString namespaceURI,
+        NodeList getElementsByTagNameNS(in DOMString namespaceURI,
                                                          in DOMString localName);
         
         Element getElementById(in DOMString elementId);
 
         // DOM Level 2 Events (DocumentEvents interface)
 
                                                          in DOMString localName);
         
         Element getElementById(in DOMString elementId);
 
         // DOM Level 2 Events (DocumentEvents interface)
 
-        [ObjCCatagory=DOMDocumentEvent, UsesPassRefPtr] Event createEvent(in DOMString eventType)
+        Event createEvent(in DOMString eventType)
             raises(DOMException);
 
         // DOM Level 2 Tranversal and Range (DocumentRange interface)
 
             raises(DOMException);
 
         // DOM Level 2 Tranversal and Range (DocumentRange interface)
 
-        [ObjCCatagory=DOMDocumentRange, UsesPassRefPtr] Range createRange();
+        Range createRange();
 
         // DOM Level 2 Tranversal and Range (DocumentTraversal interface)
 
 
         // DOM Level 2 Tranversal and Range (DocumentTraversal interface)
 
@@ -98,37 +98,37 @@ module core {
 
         // DOM Level 2 Abstract Views (DocumentView interface)
 
 
         // DOM Level 2 Abstract Views (DocumentView interface)
 
-        readonly attribute [ObjCCatagory=DOMDocumentView] DOMWindow defaultView;
+        readonly attribute DOMWindow defaultView;
 
         // DOM Level 2 Style (DocumentStyle interface)
 
 
         // DOM Level 2 Style (DocumentStyle interface)
 
-        readonly attribute [ObjCCatagory=DOMDocumentStyle] StyleSheetList styleSheets;
+        readonly attribute StyleSheetList styleSheets;
 
         // DOM Level 2 Style (DocumentCSS interface)
 
 
         // DOM Level 2 Style (DocumentCSS interface)
 
-        [ObjCCatagory=DOMDocumentCSS] CSSStyleDeclaration getOverrideStyle(in Element elt, 
-                                                                           in DOMString pseudoElt);
+        CSSStyleDeclaration getOverrideStyle(in Element elt, 
+                                             in DOMString pseudoElt);
 
         // DOM Level 3 Core
 
         readonly attribute [ConvertNullStringTo=Null, Exclude=ObjC] DOMString inputEncoding;
         
 
         // DOM Level 3 Core
 
         readonly attribute [ConvertNullStringTo=Null, Exclude=ObjC] DOMString inputEncoding;
         
-        [UsesPassRefPtr] Node adoptNode(in Node source)
+        Node adoptNode(in Node source)
             raises (DOMException);
 
 #ifdef XPATH_SUPPORT
         // DOM Level 3 XPath (XPathEvaluator interface)
             raises (DOMException);
 
 #ifdef XPATH_SUPPORT
         // DOM Level 3 XPath (XPathEvaluator interface)
-        [ObjCCatagory=DOMDocumentXPath, UsesPassRefPtr] XPathExpression createExpression(in DOMString expression,
-                                                                                         in XPathNSResolver resolver)
+        XPathExpression createExpression(in DOMString expression,
+                                         in XPathNSResolver resolver)
             raises(DOMException);
 
             raises(DOMException);
 
-        [ObjCCatagory=DOMDocumentXPath, UsesPassRefPtr] XPathNSResolver createNSResolver(in Node nodeResolver);
+        XPathNSResolver createNSResolver(in Node nodeResolver);
         
         
-        [ObjCCatagory=DOMDocumentXPath, UsesPassRefPtr] XPathResult evaluate(in DOMString expression,
-                                                                             in Node contextNode, 
-                                                                             in XPathNSResolver resolver,
-                                                                             in unsigned short type,
-                                                                             in XPathResult inResult)
+        XPathResult evaluate(in DOMString expression,
+                             in Node contextNode, 
+                             in XPathNSResolver resolver,
+                             in unsigned short type,
+                             in XPathResult inResult)
             raises(DOMException);
 #endif
 
             raises(DOMException);
 #endif
 
index 586ac7b085a2686064b6bd5d15b9043d83f23ba7..aec21bbc43ab48493c4ba4de8324447e156fe562 100644 (file)
@@ -35,15 +35,15 @@ module core {
         void removeAttribute(in DOMString name)
             raises(DOMException);
 
         void removeAttribute(in DOMString name)
             raises(DOMException);
 
-        [UsesPassRefPtr] Attr getAttributeNode(in DOMString name);
+        Attr getAttributeNode(in DOMString name);
 
 
-        [UsesPassRefPtr] Attr setAttributeNode(in Attr newAttr)
+        Attr setAttributeNode(in Attr newAttr)
             raises(DOMException);
 
             raises(DOMException);
 
-        [UsesPassRefPtr] Attr removeAttributeNode(in Attr oldAttr)
+        Attr removeAttributeNode(in Attr oldAttr)
             raises(DOMException);
 
             raises(DOMException);
 
-        [UsesPassRefPtr] NodeList getElementsByTagName(in DOMString name);
+        NodeList getElementsByTagName(in DOMString name);
 
         // DOM Level 2 Core
 
 
         // DOM Level 2 Core
 
@@ -59,13 +59,13 @@ module core {
                                in DOMString localName)
             raises(DOMException);
 
                                in DOMString localName)
             raises(DOMException);
 
-        [UsesPassRefPtr] NodeList getElementsByTagNameNS(in [ConvertNullToNullString] DOMString namespaceURI,
+        NodeList getElementsByTagNameNS(in [ConvertNullToNullString] DOMString namespaceURI,
                                                          in DOMString localName);
 
                                                          in DOMString localName);
 
-        [UsesPassRefPtr] Attr getAttributeNodeNS(in [ConvertNullToNullString] DOMString namespaceURI,
+        Attr getAttributeNodeNS(in [ConvertNullToNullString] DOMString namespaceURI,
                                                  in DOMString localName);
 
                                                  in DOMString localName);
 
-        [UsesPassRefPtr] Attr setAttributeNodeNS(in Attr newAttr)
+        Attr setAttributeNodeNS(in Attr newAttr)
             raises(DOMException);
 
         boolean hasAttribute(in DOMString name);
             raises(DOMException);
 
         boolean hasAttribute(in DOMString name);
@@ -73,37 +73,37 @@ module core {
         boolean hasAttributeNS(in [ConvertNullToNullString] DOMString namespaceURI,
                                in DOMString localName);
 
         boolean hasAttributeNS(in [ConvertNullToNullString] DOMString namespaceURI,
                                in DOMString localName);
 
-        readonly attribute [ObjCCatagory=DOMElementCSSInlineStyle] CSSStyleDeclaration style;
+        readonly attribute CSSStyleDeclaration style;
 
         // Common extensions
 
 
         // Common extensions
 
-        readonly attribute [ObjCCatagory=DOMElementExtensions] long offsetLeft;
+        readonly attribute long offsetLeft;
 
 
-        readonly attribute [ObjCCatagory=DOMElementExtensions] long offsetTop;
+        readonly attribute long offsetTop;
 
 
-        readonly attribute [ObjCCatagory=DOMElementExtensions] long offsetWidth;
+        readonly attribute long offsetWidth;
 
 
-        readonly attribute [ObjCCatagory=DOMElementExtensions] long offsetHeight;
+        readonly attribute long offsetHeight;
 
 
-        readonly attribute [ObjCCatagory=DOMElementExtensions] Element offsetParent;
+        readonly attribute Element offsetParent;
 
 
-        readonly attribute [ObjCCatagory=DOMElementExtensions] long clientWidth;
+        readonly attribute long clientWidth;
 
 
-        readonly attribute [ObjCCatagory=DOMElementExtensions] long clientHeight;
+        readonly attribute long clientHeight;
 
 
-        attribute [ObjCCatagory=DOMElementExtensions] long scrollLeft;
+        attribute long scrollLeft;
 
 
-        attribute [ObjCCatagory=DOMElementExtensions] long scrollTop;
+        attribute long scrollTop;
 
 
-        readonly attribute [ObjCCatagory=DOMElementExtensions] long scrollWidth;
+        readonly attribute long scrollWidth;
 
 
-        readonly attribute [ObjCCatagory=DOMElementExtensions] long scrollHeight;
+        readonly attribute long scrollHeight;
 
         void focus();
 
         void blur();
 
 
         void focus();
 
         void blur();
 
-        [ObjCCatagory=DOMElementExtensions] void scrollIntoView(in [Optional] boolean alignWithTop);
+        void scrollIntoView(in [Optional] boolean alignWithTop);
 
         // IE extensions
 
 
         // IE extensions
 
@@ -115,7 +115,7 @@ module core {
 
         // WebKit extensions
 
 
         // WebKit extensions
 
-        [ObjCCatagory=DOMElementExtensions] void scrollIntoViewIfNeeded(in [Optional] boolean centerIfNeeded);
+        void scrollIntoViewIfNeeded(in [Optional] boolean centerIfNeeded);
 
         [Exclude=ObjC] void scrollByLines(in long lines);
 
 
         [Exclude=ObjC] void scrollByLines(in long lines);
 
index bf99ac3fcefd863fdca47541ce55444ff457ea9e..d8e54a7fc99f469d82b931022f485bb1f9d856c1 100644 (file)
@@ -21,30 +21,30 @@ module core {
 
     interface NamedNodeMap {
 
 
     interface NamedNodeMap {
 
-        [UsesPassRefPtr] Node getNamedItem(in DOMString name);
+        Node getNamedItem(in DOMString name);
 
 
-        [UsesPassRefPtr] Node setNamedItem(in Node arg)
+        Node setNamedItem(in Node arg)
             raises(DOMException);
 
             raises(DOMException);
 
-        [UsesPassRefPtr] Node removeNamedItem(in DOMString name)
+        Node removeNamedItem(in DOMString name)
             raises(DOMException);
 
             raises(DOMException);
 
-        [UsesPassRefPtr] Node item(in unsigned long index);
+        Node item(in unsigned long index);
         
         readonly attribute unsigned long length;
 
 
         // Introduced in DOM Level 2:
 
         
         readonly attribute unsigned long length;
 
 
         // Introduced in DOM Level 2:
 
-        [UsesPassRefPtr] Node getNamedItemNS(in DOMString namespaceURI, 
+        Node getNamedItemNS(in DOMString namespaceURI, 
                                              in DOMString localName)
             // FIXME: the implementation does take an exceptioncode parameter.
             /*raises(DOMException)*/;
 
                                              in DOMString localName)
             // FIXME: the implementation does take an exceptioncode parameter.
             /*raises(DOMException)*/;
 
-        [UsesPassRefPtr] Node setNamedItemNS(in Node arg)
+        Node setNamedItemNS(in Node arg)
             raises(DOMException);
 
             raises(DOMException);
 
-        [UsesPassRefPtr] Node removeNamedItemNS(in DOMString namespaceURI, 
+        Node removeNamedItemNS(in DOMString namespaceURI, 
                                                 in DOMString localName)
             raises(DOMException);
 
                                                 in DOMString localName)
             raises(DOMException);
 
index 962cfbaf0e8f7b7982d2663b894a9ce0fe6b5852..5e4d089fcd211017fa58e303a1032543bcafaeb3 100644 (file)
@@ -33,11 +33,11 @@ module html {
                  attribute [Exclude=JS] HTMLElement body
                      setter raises (DOMException);
                      
                  attribute [Exclude=JS] HTMLElement body
                      setter raises (DOMException);
                      
-        readonly attribute [UsesPassRefPtr, Exclude=JS] HTMLCollection images;
-        readonly attribute [UsesPassRefPtr, Exclude=JS] HTMLCollection applets;
-        readonly attribute [UsesPassRefPtr, Exclude=JS] HTMLCollection links;
-        readonly attribute [UsesPassRefPtr, Exclude=JS] HTMLCollection forms;
-        readonly attribute [UsesPassRefPtr, Exclude=JS] HTMLCollection anchors;
+        readonly attribute [Exclude=JS] HTMLCollection images;
+        readonly attribute [Exclude=JS] HTMLCollection applets;
+        readonly attribute [Exclude=JS] HTMLCollection links;
+        readonly attribute [Exclude=JS] HTMLCollection forms;
+        readonly attribute [Exclude=JS] HTMLCollection anchors;
         
         // FIXME: the DOM spec states that this attribute can 
         // raise an exception on setting.
         
         // FIXME: the DOM spec states that this attribute can 
         // raise an exception on setting.
@@ -48,7 +48,7 @@ module html {
         [Exclude=JS] void               close();
         [Exclude=JS] void               write(in DOMString text);
         [Exclude=JS] void               writeln(in DOMString text);
         [Exclude=JS] void               close();
         [Exclude=JS] void               write(in DOMString text);
         [Exclude=JS] void               writeln(in DOMString text);
-        [UsesPassRefPtr, Exclude=JS] NodeList           getElementsByName(in DOMString elementName);
+        [Exclude=JS] NodeList           getElementsByName(in DOMString elementName);
 
         // non-standard
 
 
         // non-standard
 
index 82ee3a5d26d0a4021b84eb4a5e5b47311cda17c8..0bb671ec2030ea825c9579472e45d7eb1b095928 100644 (file)
@@ -30,21 +30,21 @@ module html {
 
         // extensions
 
 
         // extensions
 
-        attribute [ObjCCatagory=DOMHTMLElementExtensions, Exclude=JS] DOMString innerHTML
+        attribute [Exclude=JS] DOMString innerHTML
             setter raises (DOMException);
             setter raises (DOMException);
-        attribute [ObjCCatagory=DOMHTMLElementExtensions, Exclude=JS] DOMString innerText
+        attribute [Exclude=JS] DOMString innerText
             setter raises (DOMException);
             setter raises (DOMException);
-        attribute [ObjCCatagory=DOMHTMLElementExtensions, Exclude=JS] DOMString outerHTML
+        attribute [Exclude=JS] DOMString outerHTML
             setter raises (DOMException);
             setter raises (DOMException);
-        attribute [ObjCCatagory=DOMHTMLElementExtensions, Exclude=JS] DOMString outerText
+        attribute [Exclude=JS] DOMString outerText
             setter raises (DOMException);
 
             setter raises (DOMException);
 
-        readonly attribute [UsesPassRefPtr, ObjCCatagory=DOMHTMLElementExtensions, Exclude=JS] HTMLCollection children;
+        readonly attribute [Exclude=JS] HTMLCollection children;
 
 
-        attribute [ObjCCatagory=DOMHTMLElementExtensions, Exclude=JS] DOMString contentEditable;
-        readonly attribute [ObjCCatagory=DOMHTMLElementExtensions, Exclude=JS] boolean isContentEditable;
+        attribute [Exclude=JS] DOMString contentEditable;
+        readonly attribute [Exclude=JS] boolean isContentEditable;
 
 
-        readonly attribute [ObjCCatagory=DOMHTMLElementExtensions, Exclude=JS] DOMString titleDisplayString;
+        readonly attribute [Exclude=JS] DOMString titleDisplayString;
 
     };
 
 
     };
 
index 184862c34639d686cf607ea31fde82ecdb631a89..1ea7c25158b2ae1ae22717a29bdb515bcf982966 100644 (file)
@@ -21,7 +21,7 @@
 module html {
 
     interface [LegacyParent=KJS::JSHTMLElement, HasIndexGetter, HasOverridingNameGetter] HTMLFormElement : HTMLElement {
 module html {
 
     interface [LegacyParent=KJS::JSHTMLElement, HasIndexGetter, HasOverridingNameGetter] HTMLFormElement : HTMLElement {
-        readonly attribute [UsesPassRefPtr] HTMLCollection  elements;
+        readonly attribute HTMLCollection  elements;
         readonly attribute long            length;
                  attribute DOMString       name;
                  attribute DOMString       acceptCharset;
         readonly attribute long            length;
                  attribute DOMString       name;
                  attribute DOMString       acceptCharset;
index f2822c3456ce8c59c39c7205fa0e5e53733b9eeb..4c73d0db1999eb4fdfc7a45f938a8b919cf672a4 100644 (file)
@@ -20,7 +20,7 @@
 
 module html {
     interface [LegacyParent=KJS::JSHTMLElement] HTMLMapElement : HTMLElement {
 
 module html {
     interface [LegacyParent=KJS::JSHTMLElement] HTMLMapElement : HTMLElement {
-        readonly attribute [UsesPassRefPtr] HTMLCollection areas;
+        readonly attribute HTMLCollection areas;
         attribute DOMString name;
     };
 }
         attribute DOMString name;
     };
 }
index ddef4f99802002317a51d08a705529311e323a23..971883c8d8e55978dad06d3f16add307ccd4513c 100644 (file)
@@ -36,7 +36,7 @@ module html {
         readonly attribute HTMLFormElement form;
 
         // Modified in DOM Level 2:
         readonly attribute HTMLFormElement form;
 
         // Modified in DOM Level 2:
-        readonly attribute [UsesPassRefPtr] HTMLOptionsCollection options;
+        readonly attribute HTMLOptionsCollection options;
 
                  attribute boolean         disabled;
                  attribute boolean         multiple;
 
                  attribute boolean         disabled;
                  attribute boolean         multiple;
index a0b667040a83f4476e0d5447b839b33adbceafcf..66e58d022636ea3f830ae31df19059313a46c209 100644 (file)
@@ -31,8 +31,8 @@ module html {
                  attribute HTMLTableSectionElement tFoot
                      /*setter raises (DOMException)*/;
 
                  attribute HTMLTableSectionElement tFoot
                      /*setter raises (DOMException)*/;
 
-        readonly attribute [UsesPassRefPtr] HTMLCollection rows;
-        readonly attribute [UsesPassRefPtr] HTMLCollection tBodies;
+        readonly attribute HTMLCollection rows;
+        readonly attribute HTMLCollection tBodies;
                  attribute DOMString align;
                  attribute DOMString bgColor;
                  attribute DOMString border;
                  attribute DOMString align;
                  attribute DOMString bgColor;
                  attribute DOMString border;
index 507f02202abb1e35eed7de7f1bbbd2eb07b88620..5c8d6fe383b70d440ab8a90d27bb4ddf965099b6 100644 (file)
@@ -24,7 +24,7 @@ module html {
 
         readonly attribute long            rowIndex;
         readonly attribute long            sectionRowIndex;
 
         readonly attribute long            rowIndex;
         readonly attribute long            sectionRowIndex;
-        readonly attribute [UsesPassRefPtr] HTMLCollection  cells;
+        readonly attribute HTMLCollection  cells;
                  attribute DOMString       align;
                  attribute DOMString       bgColor;
                  attribute DOMString       ch;
                  attribute DOMString       align;
                  attribute DOMString       bgColor;
                  attribute DOMString       ch;
index 1d55db3ffb441871a59f133f15e620bb0a5efb72..eb16e0e6372b6a472eefe6666f928387de026af9 100644 (file)
@@ -26,7 +26,7 @@ module html {
                  attribute DOMString       ch;
                  attribute DOMString       chOff;
                  attribute DOMString       vAlign;
                  attribute DOMString       ch;
                  attribute DOMString       chOff;
                  attribute DOMString       vAlign;
-        readonly attribute [UsesPassRefPtr] HTMLCollection  rows;
+        readonly attribute HTMLCollection  rows;
 
         HTMLElement        insertRow(in long index)
             raises(DOMException);
 
         HTMLElement        insertRow(in long index)
             raises(DOMException);