[webkit-changes] cvs commit: WebCore/khtml/ecma xmlhttprequest.cpp xmlhttprequest.h

John sullivan at opensource.apple.com
Tue Aug 23 09:45:13 PDT 2005


sullivan    05/08/23 09:45:12

  Modified:    .        ChangeLog
               khtml/ecma xmlhttprequest.cpp xmlhttprequest.h
  Log:
          Reviewed by Beth Dakin.
  
          - fixed <rdar://problem/4227019> Several 32-byte leaks after choosing pop-up menu at dzone198.apple.com
  
          Test cases added: none, doesn't affect layout. I did execute run-layout-tests to verify that there
          were no surprises though.
  
          * khtml/ecma/xmlhttprequest.h:
          use SharedPtr for onReadyStateChangeListener and onLoadListener
          * khtml/ecma/xmlhttprequest.cpp:
          (KJS::XMLHttpRequest::getValueProperty):
          use notNull() instead of testing SharedPtrs against 0
          (KJS::XMLHttpRequest::putValueProperty):
          use reset() to set values of SharedPtrs; eliminate ref()s that had no deref()s
          (KJS::XMLHttpRequest::mark):
          use notNull() instead of testing SharedPtrs against 0
          (KJS::XMLHttpRequest::XMLHttpRequest):
          don't initialize SharedPtrs
          (KJS::XMLHttpRequest::changeState):
          use notNull() instead of testing SharedPtrs against 0
  
  Revision  Changes    Path
  1.4617    +23 -0     WebCore/ChangeLog
  
  Index: ChangeLog
  ===================================================================
  RCS file: /cvs/root/WebCore/ChangeLog,v
  retrieving revision 1.4616
  retrieving revision 1.4617
  diff -u -r1.4616 -r1.4617
  --- ChangeLog	22 Aug 2005 20:24:32 -0000	1.4616
  +++ ChangeLog	23 Aug 2005 16:45:02 -0000	1.4617
  @@ -1,3 +1,26 @@
  +2005-08-22  John Sullivan  <sullivan at apple.com>
  +
  +        Reviewed by Beth Dakin.
  +        
  +        - fixed <rdar://problem/4227019> Several 32-byte leaks after choosing pop-up menu at dzone198.apple.com
  +
  +        Test cases added: none, doesn't affect layout. I did execute run-layout-tests to verify that there
  +        were no surprises though.
  +
  +        * khtml/ecma/xmlhttprequest.h:
  +        use SharedPtr for onReadyStateChangeListener and onLoadListener
  +        * khtml/ecma/xmlhttprequest.cpp:
  +        (KJS::XMLHttpRequest::getValueProperty):
  +        use notNull() instead of testing SharedPtrs against 0
  +        (KJS::XMLHttpRequest::putValueProperty):
  +        use reset() to set values of SharedPtrs; eliminate ref()s that had no deref()s
  +        (KJS::XMLHttpRequest::mark):
  +        use notNull() instead of testing SharedPtrs against 0
  +        (KJS::XMLHttpRequest::XMLHttpRequest):
  +        don't initialize SharedPtrs
  +        (KJS::XMLHttpRequest::changeState):
  +        use notNull() instead of testing SharedPtrs against 0
  +
   2005-08-22  David Harrison  <harrison at apple.com>
   
           Reviewed by Justin.
  
  
  
  1.39      +8 -12     WebCore/khtml/ecma/xmlhttprequest.cpp
  
  Index: xmlhttprequest.cpp
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/xmlhttprequest.cpp,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- xmlhttprequest.cpp	17 Aug 2005 08:07:32 -0000	1.38
  +++ xmlhttprequest.cpp	23 Aug 2005 16:45:12 -0000	1.39
  @@ -184,13 +184,13 @@
     case StatusText:
       return getStatusText();
     case Onreadystatechange:
  -   if (onReadyStateChangeListener && onReadyStateChangeListener->listenerObjImp()) {
  +   if (onReadyStateChangeListener.notNull() && onReadyStateChangeListener->listenerObjImp()) {
        return onReadyStateChangeListener->listenerObj();
      } else {
        return Null();
      }
     case Onload:
  -   if (onLoadListener && onLoadListener->listenerObjImp()) {
  +   if (onLoadListener.notNull() && onLoadListener->listenerObjImp()) {
        return onLoadListener->listenerObj();
      } else {
        return Null();
  @@ -210,12 +210,10 @@
   {
     switch(token) {
     case Onreadystatechange:
  -    onReadyStateChangeListener = Window::retrieveActive(exec)->getJSUnprotectedEventListener(value, true);
  -    if (onReadyStateChangeListener) onReadyStateChangeListener->ref();
  +    onReadyStateChangeListener.reset(Window::retrieveActive(exec)->getJSUnprotectedEventListener(value, true));
       break;
     case Onload:
  -    onLoadListener = Window::retrieveActive(exec)->getJSUnprotectedEventListener(value, true);
  -    if (onLoadListener) onLoadListener->ref();
  +    onLoadListener.reset(Window::retrieveActive(exec)->getJSUnprotectedEventListener(value, true));
       break;
     default:
       kdWarning() << "HTMLDocument::putValueProperty unhandled token " << token << endl;
  @@ -226,10 +224,10 @@
   {
     DOMObject::mark();
   
  -  if (onReadyStateChangeListener)
  +  if (onReadyStateChangeListener.notNull())
       onReadyStateChangeListener->mark();
   
  -  if (onLoadListener)
  +  if (onLoadListener.notNull())
       onLoadListener->mark();
   }
   
  @@ -240,8 +238,6 @@
       async(true),
       job(0),
       state(Uninitialized),
  -    onReadyStateChangeListener(0),
  -    onLoadListener(0),
       decoder(0),
       createdDocument(false),
       aborted(false)
  @@ -262,7 +258,7 @@
     if (state != newState) {
       state = newState;
       
  -    if (doc && doc->part() && onReadyStateChangeListener != 0) {
  +    if (doc && doc->part() && onReadyStateChangeListener.notNull()) {
         int ignoreException;
         EventImpl *ev = doc->createEvent("HTMLEvents", ignoreException);
         ev->ref();
  @@ -271,7 +267,7 @@
         ev->deref();
       }
       
  -    if (doc && doc->part() && state == Completed && onLoadListener != 0) {
  +    if (doc && doc->part() && state == Completed && onLoadListener.notNull()) {
         int ignoreException;
         EventImpl *ev = doc->createEvent("HTMLEvents", ignoreException);
         ev->ref();
  
  
  
  1.19      +2 -2      WebCore/khtml/ecma/xmlhttprequest.h
  
  Index: xmlhttprequest.h
  ===================================================================
  RCS file: /cvs/root/WebCore/khtml/ecma/xmlhttprequest.h,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- xmlhttprequest.h	8 Aug 2005 04:07:42 -0000	1.18
  +++ xmlhttprequest.h	23 Aug 2005 16:45:12 -0000	1.19
  @@ -125,8 +125,8 @@
       KIO::TransferJob * job;
   
       XMLHttpRequestState state;
  -    JSUnprotectedEventListener *onReadyStateChangeListener;
  -    JSUnprotectedEventListener *onLoadListener;
  +    khtml::SharedPtr<JSUnprotectedEventListener> onReadyStateChangeListener;
  +    khtml::SharedPtr<JSUnprotectedEventListener> onLoadListener;
   
       khtml::Decoder *decoder;
       QString encoding;
  
  
  



More information about the webkit-changes mailing list