Author: rfm
Date: Wed May 21 08:36:09 2014
New Revision: 37896

URL: http://svn.gna.org/viewcvs/gnustep?rev=37896&view=rev
Log:
bugfix release

Modified:
    libs/webservices/trunk/ChangeLog
    libs/webservices/trunk/GNUmakefile
    libs/webservices/trunk/GWSService.h
    libs/webservices/trunk/GWSService.m

Modified: libs/webservices/trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/webservices/trunk/ChangeLog?rev=37896&r1=37895&r2=37896&view=diff
==============================================================================
--- libs/webservices/trunk/ChangeLog    (original)
+++ libs/webservices/trunk/ChangeLog    Wed May 21 08:36:09 2014
@@ -1,7 +1,14 @@
+2014-05-21 Richard Frith-Macdonald  <[email protected]>
+
+       * GWSService.m: Fix thread safety issue ... retain/autorelease self
+       before removing as client of a handle which has us retained.
+       * GNUmakefile: bump version for release
+       Version 0.6.1: bugfix release.
+
 2014-05-08 Richard Frith-Macdonald  <[email protected]>
 
        * GNUmakefile: bump version for release
-       Version 0.6.0: inew version for hadded hash functionality and bugfixes
+       Version 0.6.0: new version for hadded hash functionality and bugfixes
 
 2014-05-01 Richard Frith-Macdonald  <[email protected]>
 

Modified: libs/webservices/trunk/GNUmakefile
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/webservices/trunk/GNUmakefile?rev=37896&r1=37895&r2=37896&view=diff
==============================================================================
--- libs/webservices/trunk/GNUmakefile  (original)
+++ libs/webservices/trunk/GNUmakefile  Wed May 21 08:36:09 2014
@@ -21,7 +21,7 @@
 -include config.make
 
 PACKAGE_NAME = WebServices
-PACKAGE_VERSION = 0.6.0
+PACKAGE_VERSION = 0.6.1
 WebServices_INTERFACE_VERSION=0.6
 CVS_MODULE_NAME = gnustep/dev-libs/WebServices
 CVS_TAG_NAME = WebServices

Modified: libs/webservices/trunk/GWSService.h
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/webservices/trunk/GWSService.h?rev=37896&r1=37895&r2=37896&view=diff
==============================================================================
--- libs/webservices/trunk/GWSService.h (original)
+++ libs/webservices/trunk/GWSService.h Wed May 21 08:36:09 2014
@@ -338,7 +338,7 @@
 /** Sets extra headers to be sent as part of any HTTP or HTTPS request
  * initiated by this service.<br />
  * NB. These headers are set *after* the default headers set for content
- * type and user agent etc, so yu can override the values normally set
+ * type and user agent etc, so you can override the values normally set
  * by the service.
  */
 - (void) setHeaders: (NSDictionary*)headers;

Modified: libs/webservices/trunk/GWSService.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/webservices/trunk/GWSService.m?rev=37896&r1=37895&r2=37896&view=diff
==============================================================================
--- libs/webservices/trunk/GWSService.m (original)
+++ libs/webservices/trunk/GWSService.m Wed May 21 08:36:09 2014
@@ -1983,19 +1983,17 @@
   /* Retain self during this process ... since removing self as a
    * client of the handle could cause the receiver to be deallocated
    */ 
-  RETAIN(self);
+  [[self retain] autorelease];
   [_lock lock];
   _completedIO = YES;
   threadRem(&_ioThread);
   [_lock unlock];
-
   [handle removeClient: (id<NSURLHandleClient>)self];
   if (NO == _cancelled)
     {
       [self _setProblem: reason];
     }
   [self _completed];
-  RELEASE(self);
 }
 
 - (void) URLHandleResourceDidBeginLoading: (NSURLHandle*)sender
@@ -2005,11 +2003,14 @@
 
 - (void) URLHandleResourceDidCancelLoading: (NSURLHandle*)sender
 {
+  /* Retain self during this process ... since removing self as a
+   * client of the handle could cause the receiver to be deallocated
+   */ 
+  [[self retain] release];
   [_lock lock];
   _completedIO = YES;
   threadRem(&_ioThread);
   [_lock unlock];
-
   [handle removeClient: (id<NSURLHandleClient>)self];
   if (NO == _cancelled)
     {
@@ -2031,12 +2032,15 @@
 
 - (void) URLHandleResourceDidFinishLoading: (NSURLHandle*)sender
 {
+  /* Retain self during this process ... since removing self as a
+   * client of the handle could cause the receiver to be deallocated
+   */ 
+  [[self retain] release];
   [_lock lock];
   _completedIO = YES;
   threadRem(&_ioThread);
   _stage = RPCParsing;
   [_lock unlock];
-
   [handle removeClient: (id<NSURLHandleClient>)self];
   [_response release];
   _response = [[handle availableResourceData] mutableCopy];


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to