[webkit-changes] cvs commit: WebCore/khtml/xsl xslt_processorimpl.cpp

Eric eseidel at opensource.apple.com
Tue Dec 20 00:49:51 PST 2005


eseidel     05/12/20 00:49:51

  Modified:    .        ChangeLog
               khtml    khtml_part.cpp khtmlpart_p.h
               khtml/ecma XSLTProcessor.cpp xmlhttprequest.cpp
                        xmlhttprequest.h
               khtml/misc decoder.cpp decoder.h loader.h
               khtml/xml dom_docimpl.cpp dom_docimpl.h
               khtml/xsl xslt_processorimpl.cpp
  Log:
  Bug #: 6107
  Submitted by: eseidel
  Reviewed by: darin
          Move Decoder onto Shared<T> and clients onto RefPtr.
          http://bugzilla.opendarwin.org/show_bug.cgi?id=6107
          No test cases possible, no functional changes.
  
          * khtml/ecma/XSLTProcessor.cpp:
          (KJS::XSLTProcessorProtoFunc::callAsFunction):
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::XMLHttpRequest):
          (KJS::XMLHttpRequest::~XMLHttpRequest):
          (KJS::XMLHttpRequest::changeState):
          (KJS::XMLHttpRequest::abort):
          (KJS::XMLHttpRequest::slotFinished):
          (KJS::XMLHttpRequest::slotData):
          * khtml/ecma/xmlhttprequest.h:
          * khtml/khtml_part.cpp:
          (KHTMLPart::clear):
          (KHTMLPart::begin):
          (KHTMLPart::write):
          * khtml/khtmlpart_p.h:
          (KHTMLPartPrivate::KHTMLPartPrivate):
          * khtml/misc/decoder.cpp:
          (Decoder::Decoder):
          (Decoder::~Decoder):
          * khtml/misc/decoder.h:
          * khtml/misc/loader.h:
          * khtml/xml/dom_docimpl.cpp:
          (DocumentImpl::DocumentImpl):
          (DocumentImpl::~DocumentImpl):
          (DocumentImpl::prepareMouseEvent):
          (DocumentImpl::setDecoder):
          * khtml/xml/dom_docimpl.h:
          (DOM::DocumentImpl::decoder):
          * khtml/xsl/xslt_processorimpl.cpp:
          (DOM::XSLTProcessorImpl::createDocumentFromSource):
  
  Revision  Changes    Path
  1.7       +39 -0     WebCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebCore/ChangeLog,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ChangeLog	19 Dec 2005 20:41:45 -0000	1.6
  +++ ChangeLog	20 Dec 2005 08:49:45 -0000	1.7
  @@ -1,3 +1,42 @@
  +2005-12-20  Eric Seidel  <eseidel at apple.com>
  +
  +        Reviewed by darin.
  +
  +        Move Decoder onto Shared<T> and clients onto RefPtr.
  +        http://bugzilla.opendarwin.org/show_bug.cgi?id=6107
  +        No test cases possible, no functional changes.
  +
  +        * khtml/ecma/XSLTProcessor.cpp:
  +        (KJS::XSLTProcessorProtoFunc::callAsFunction):
  +        * khtml/ecma/xmlhttprequest.cpp:
  +        (KJS::XMLHttpRequest::XMLHttpRequest):
  +        (KJS::XMLHttpRequest::~XMLHttpRequest):
  +        (KJS::XMLHttpRequest::changeState):
  +        (KJS::XMLHttpRequest::abort):
  +        (KJS::XMLHttpRequest::slotFinished):
  +        (KJS::XMLHttpRequest::slotData):
  +        * khtml/ecma/xmlhttprequest.h:
  +        * khtml/khtml_part.cpp:
  +        (KHTMLPart::clear):
  +        (KHTMLPart::begin):
  +        (KHTMLPart::write):
  +        * khtml/khtmlpart_p.h:
  +        (KHTMLPartPrivate::KHTMLPartPrivate):
  +        * khtml/misc/decoder.cpp:
  +        (Decoder::Decoder):
  +        (Decoder::~Decoder):
  +        * khtml/misc/decoder.h:
  +        * khtml/misc/loader.h:
  +        * khtml/xml/dom_docimpl.cpp:
  +        (DocumentImpl::DocumentImpl):
  +        (DocumentImpl::~DocumentImpl):
  +        (DocumentImpl::prepareMouseEvent):
  +        (DocumentImpl::setDecoder):
  +        * khtml/xml/dom_docimpl.h:
  +        (DOM::DocumentImpl::decoder):
  +        * khtml/xsl/xslt_processorimpl.cpp:
  +        (DOM::XSLTProcessorImpl::createDocumentFromSource):
  +
   2005-12-19  Darin Adler  <darin at apple.com>
   
           Reviewed by Maciej.
  
  
  
  1.370     +2 -4      WebCore/khtml/khtml_part.cpp
  
  Index: khtml_part.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/khtml_part.cpp,v
  retrieving revision 1.369
  retrieving revision 1.370
  diff -u -r1.369 -r1.370
  --- khtml_part.cpp	16 Dec 2005 21:30:35 -0000	1.369
  +++ khtml_part.cpp	20 Dec 2005 08:49:45 -0000	1.370
  @@ -674,8 +674,6 @@
       d->m_doc->deref();
     d->m_doc = 0;
   
  -  if (d->m_decoder)
  -    d->m_decoder->deref();
     d->m_decoder = 0;
   
     {
  @@ -919,7 +917,7 @@
     // about to load a new page.
     d->m_doc->setBaseURL( baseurl.url() );
     if (d->m_decoder)
  -    d->m_doc->setDecoder(d->m_decoder);
  +    d->m_doc->setDecoder(d->m_decoder.get());
     d->m_doc->docLoader()->setShowAnimations( d->m_settings->showAnimations() );
   
     KWQ(this)->updatePolicyBaseURL();
  @@ -953,7 +951,7 @@
               d->m_decoder->setEncoding(defaultEncoding, Decoder::DefaultEncoding);
           }
           if (d->m_doc)
  -            d->m_doc->setDecoder(d->m_decoder);
  +            d->m_doc->setDecoder(d->m_decoder.get());
       }
     if ( len == 0 )
       return;
  
  
  
  1.65      +1 -2      WebCore/khtml/khtmlpart_p.h
  
  Index: khtmlpart_p.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/khtmlpart_p.h,v
  retrieving revision 1.64
  retrieving revision 1.65
  diff -u -r1.64 -r1.65
  --- khtmlpart_p.h	15 Dec 2005 22:31:28 -0000	1.64
  +++ khtmlpart_p.h	20 Dec 2005 08:49:46 -0000	1.65
  @@ -101,7 +101,6 @@
     KHTMLPartPrivate(QObject* parent)
     {
       m_doc = 0L;
  -    m_decoder = 0L;
       m_jscript = 0L;
       m_runningScripts = 0;
       m_job = 0L;
  @@ -197,7 +196,7 @@
     KHTMLPartBrowserExtension *m_extension;
     KHTMLPartBrowserHostExtension *m_hostExtension;
     DOM::DocumentImpl *m_doc;
  -  khtml::Decoder *m_decoder;
  +  RefPtr<khtml::Decoder> m_decoder;
     QString m_encoding;
     QString m_sheetUsed;
   #if !APPLE_CANGES
  
  
  
  1.5       +1 -1      WebCore/khtml/ecma/XSLTProcessor.cpp
  
  Index: XSLTProcessor.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/XSLTProcessor.cpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- XSLTProcessor.cpp	11 Dec 2005 02:06:04 -0000	1.4
  +++ XSLTProcessor.cpp	20 Dec 2005 08:49:47 -0000	1.5
  @@ -129,7 +129,7 @@
               DOMString localName = args[1]->toString(exec).domString();
               DOMStringImpl *value = processor.getParameter(namespaceURI.impl(), localName.impl()).get();
               if (value)
  -                return jsString(UString(value));
  +                return jsString(UString(DOMString(value)));
               return jsUndefined();
           }
           case XSLTProcessor::RemoveParameter:
  
  
  
  1.54      +9 -25     WebCore/khtml/ecma/xmlhttprequest.cpp
  
  Index: xmlhttprequest.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/xmlhttprequest.cpp,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- xmlhttprequest.cpp	19 Dec 2005 19:17:32 -0000	1.53
  +++ xmlhttprequest.cpp	20 Dec 2005 08:49:47 -0000	1.54
  @@ -260,7 +260,6 @@
       async(true),
       job(0),
       state(Uninitialized),
  -    decoder(0),
       createdDocument(false),
       aborted(false)
   {
  @@ -269,10 +268,7 @@
   
   XMLHttpRequest::~XMLHttpRequest()
   {
  -  delete qObject;
  -  if (decoder) {
  -    decoder->deref();
  -  }
  +    delete qObject;
   }
   
   void XMLHttpRequest::changeState(XMLHttpRequestState newState)
  @@ -282,20 +278,16 @@
       
       if (doc && doc->part() && onReadyStateChangeListener) {
         int ignoreException;
  -      EventImpl *ev = doc->createEvent("HTMLEvents", ignoreException);
  -      ev->ref();
  +      RefPtr<EventImpl> ev = doc->createEvent("HTMLEvents", ignoreException);
         ev->initEvent(readystatechangeEvent, true, true);
  -      onReadyStateChangeListener->handleEventImpl(ev, true);
  -      ev->deref();
  +      onReadyStateChangeListener->handleEventImpl(ev.get(), true);
       }
       
       if (doc && doc->part() && state == Completed && onLoadListener) {
         int ignoreException;
  -      EventImpl *ev = doc->createEvent("HTMLEvents", ignoreException);
  -      ev->ref();
  +      RefPtr<EventImpl> ev = doc->createEvent("HTMLEvents", ignoreException);
         ev->initEvent(loadEvent, true, true);
  -      onLoadListener->handleEventImpl(ev, true);
  -      ev->deref();
  +      onLoadListener->handleEventImpl(ev.get(), true);
       }
     }
   }
  @@ -417,10 +409,7 @@
       job->kill();
       job = 0;
     }
  -  if (decoder) {
  -    decoder->deref();
  -    decoder = 0;
  -  }
  +  decoder = 0;
     aborted = true;
   
     if (hadJob) {
  @@ -563,19 +552,14 @@
   
   void XMLHttpRequest::slotFinished(KIO::Job *)
   {
  -  if (decoder) {
  +  if (decoder)
       response += decoder->flush();
  -  }
   
     removeFromRequestsByDocument();
     job = 0;
   
     changeState(Completed);
  -  
  -  if (decoder) {
  -    decoder->deref();
  -    decoder = 0;
  -  }
  +  decoder = 0;
   
     JSLock lock;
     gcUnprotect(this);
  @@ -596,7 +580,7 @@
     if (state < Loaded)
       changeState(Loaded);
     
  -  if (decoder == NULL) {
  +  if (!decoder) {
       encoding = getCharset(MIMETypeOverride);
       if (encoding.isEmpty())
         encoding = getCharset(getResponseHeader("Content-Type"));
  
  
  
  1.25      +1 -1      WebCore/khtml/ecma/xmlhttprequest.h
  
  Index: xmlhttprequest.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/xmlhttprequest.h,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- xmlhttprequest.h	19 Dec 2005 19:17:32 -0000	1.24
  +++ xmlhttprequest.h	20 Dec 2005 08:49:47 -0000	1.25
  @@ -123,7 +123,7 @@
       RefPtr<JSUnprotectedEventListener> onReadyStateChangeListener;
       RefPtr<JSUnprotectedEventListener> onLoadListener;
   
  -    khtml::Decoder *decoder;
  +    RefPtr<khtml::Decoder> decoder;
       QString encoding;
       QString responseHeaders;
       QString MIMETypeOverride;
  
  
  
  1.49      +1 -4      WebCore/khtml/misc/decoder.cpp
  
  Index: decoder.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/misc/decoder.cpp,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- decoder.cpp	14 Dec 2005 23:31:54 -0000	1.48
  +++ decoder.cpp	20 Dec 2005 08:49:48 -0000	1.49
  @@ -269,9 +269,7 @@
   
   Decoder::Decoder() 
   {
  -    _refCount = 1;
  -    // latin1
  -    m_codec = QTextCodec::codecForName("iso8859-1");
  +    m_codec = QTextCodec::codecForName("iso8859-1"); // latin1
       m_decoder = m_codec->makeDecoder();
       enc = 0;
       m_type = DefaultEncoding;
  @@ -281,7 +279,6 @@
   }
   Decoder::~Decoder()
   {
  -    assert(_refCount == 0);
       delete m_decoder;
   }
   
  
  
  
  1.11      +1 -6      WebCore/khtml/misc/decoder.h
  
  Index: decoder.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/misc/decoder.h,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- decoder.h	21 Nov 2005 01:20:19 -0000	1.10
  +++ decoder.h	20 Dec 2005 08:49:48 -0000	1.11
  @@ -30,7 +30,7 @@
   /**
    * @internal
    */
  -class Decoder
  +class Decoder : public Shared<Decoder>
   {
   public:
       enum EncodingType {
  @@ -56,9 +56,6 @@
   
       QString flush() const;
   
  -    void ref() { ++_refCount; }
  -    void deref() { if (!--_refCount) delete this; }
  -
   protected:
       // codec used for decoding. default is Latin1.
       QTextCodec *m_codec;
  @@ -73,8 +70,6 @@
       bool body;
       bool beginning;
       bool visualRTL;
  -
  -    unsigned _refCount;
   };
   
   }
  
  
  
  1.49      +2 -2      WebCore/khtml/misc/loader.h
  
  Index: loader.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/misc/loader.h,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- loader.h	15 Dec 2005 22:31:44 -0000	1.48
  +++ loader.h	20 Dec 2005 08:49:48 -0000	1.49
  @@ -414,7 +414,7 @@
           
   protected:
           DOM::DOMString m_sheet;
  -        Decoder* m_decoder;
  +        RefPtr<Decoder> m_decoder;
       };
   #endif
       
  @@ -440,7 +440,7 @@
           
   protected:
           XBL::XBLDocumentImpl* m_document;
  -        Decoder* m_decoder;
  +        RefPtr<Decoder> m_decoder;
       };
   #endif
   
  
  
  
  1.288     +1 -11     WebCore/khtml/xml/dom_docimpl.cpp
  
  Index: dom_docimpl.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/xml/dom_docimpl.cpp,v
  retrieving revision 1.287
  retrieving revision 1.288
  diff -u -r1.287 -r1.288
  --- dom_docimpl.cpp	18 Dec 2005 22:23:27 -0000	1.287
  +++ dom_docimpl.cpp	20 Dec 2005 08:49:49 -0000	1.288
  @@ -390,7 +390,6 @@
       , m_savedRenderer(0)
       , m_passwordFields(0)
       , m_secureForms(0)
  -    , m_decoder(0)
       , m_createRenderers(true)
       , m_designMode(inherit)
       , m_hasDashboardRegions(false)
  @@ -544,11 +543,7 @@
           delete m_accCache;
           m_accCache = 0;
       }
  -    
  -    if (m_decoder){
  -        m_decoder->deref();
  -        m_decoder = 0;
  -    }
  +    m_decoder = 0;
       
       if (m_jsEditor) {
           delete m_jsEditor;
  @@ -1926,7 +1921,6 @@
               }
               else
                   ev->url = href;
  -//            qDebug("url: *%s*", ev->url.qstring().latin1());
           }
   
           if (!readonly)
  @@ -2753,10 +2747,6 @@
   
   void DocumentImpl::setDecoder(Decoder *decoder)
   {
  -    decoder->ref();
  -    if (m_decoder) {
  -        m_decoder->deref();
  -    }
       m_decoder = decoder;
   }
   
  
  
  
  1.145     +2 -2      WebCore/khtml/xml/dom_docimpl.h
  
  Index: dom_docimpl.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/xml/dom_docimpl.h,v
  retrieving revision 1.144
  retrieving revision 1.145
  diff -u -r1.144 -r1.145
  --- dom_docimpl.h	16 Dec 2005 08:08:21 -0000	1.144
  +++ dom_docimpl.h	20 Dec 2005 08:49:50 -0000	1.145
  @@ -747,7 +747,7 @@
       bool shouldCreateRenderers();
       
       void setDecoder(khtml::Decoder *);
  -    khtml::Decoder *decoder() const { return m_decoder; }
  +    khtml::Decoder *decoder() const { return m_decoder.get(); }
   
       void setDashboardRegionsDirty(bool f) { m_dashboardRegionsDirty = f; }
       bool dashboardRegionsDirty() const { return m_dashboardRegionsDirty; }
  @@ -781,7 +781,7 @@
       int m_passwordFields;
       int m_secureForms;
       
  -    khtml::Decoder *m_decoder;
  +    RefPtr<khtml::Decoder> m_decoder;
   
       mutable QDict<ElementImpl> m_elementsById;
       mutable QDict<char> m_idCount;
  
  
  
  1.19      +2 -3      WebCore/khtml/xsl/xslt_processorimpl.cpp
  
  Index: xslt_processorimpl.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/xsl/xslt_processorimpl.cpp,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- xslt_processorimpl.cpp	18 Dec 2005 22:23:27 -0000	1.18
  +++ xslt_processorimpl.cpp	20 Dec 2005 08:49:51 -0000	1.19
  @@ -209,10 +209,9 @@
       }
       result->determineParseMode(documentSource); // Make sure we parse in the correct mode.
       
  -    Decoder *decoder = new Decoder;
  +    RefPtr<Decoder> decoder = new Decoder;
       decoder->setEncoding(sourceEncoding.isEmpty() ? "UTF-8" : sourceEncoding.latin1(), Decoder::EncodingFromXMLHeader);
  -    result->setDecoder(decoder);
  -    decoder->deref();
  +    result->setDecoder(decoder.get());
       
       result->write(documentSource);
       result->finishParsing();
  
  
  



More information about the webkit-changes mailing list