diff --git a/src/PGSQLConnection.m b/src/PGSQLConnection.m index 4d6321f..339426c 100644 --- a/src/PGSQLConnection.m +++ b/src/PGSQLConnection.m @@ -34,7 +34,7 @@ @try { _parameters = [[OFDictionary alloc] init]; } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -43,7 +43,7 @@ - (void)dealloc { - [_parameters release]; + objc_release(_parameters); [self close]; diff --git a/src/PGSQLResult.m b/src/PGSQLResult.m index 9798f21..f79770c 100644 --- a/src/PGSQLResult.m +++ b/src/PGSQLResult.m @@ -26,7 +26,8 @@ + (instancetype)pg_resultWithResult: (PGresult *)result { - return [[[self alloc] pg_initWithResult: result] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] pg_initWithResult: result]); } - (instancetype)pg_initWithResult: (PGresult *)result diff --git a/src/PGSQLResultRow.m b/src/PGSQLResultRow.m index edc1e4d..fa00887 100644 --- a/src/PGSQLResultRow.m +++ b/src/PGSQLResultRow.m @@ -65,23 +65,29 @@ convertType(PGresult *res, int column, OFString *string) @implementation PGSQLResultRow + (instancetype)pg_rowWithResult: (PGSQLResult *)result row: (int)row { - return [[[self alloc] pg_initWithResult: result row: row] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] pg_initWithResult: result row: row]); } - (instancetype)pg_initWithResult: (PGSQLResult *)result row: (int)row { self = [super init]; - _result = [result retain]; - _res = result.pg_result; - _row = row; + @try { + _result = objc_retain(result); + _res = result.pg_result; + _row = row; + } @catch (id e) { + objc_release(self); + @throw e; + } return self; } - (void)dealloc { - [_result release]; + objc_release(_result); [super dealloc]; } @@ -115,16 +121,16 @@ convertType(PGresult *res, int column, OFString *string) - (OFEnumerator *)keyEnumerator { - return [[[PGSQLResultRowKeyEnumerator alloc] - initWithResult: _result - row: _row] autorelease]; + return objc_autoreleaseReturnValue( + [[PGSQLResultRowKeyEnumerator alloc] initWithResult: _result + row: _row]); } - (OFEnumerator *)objectEnumerator { - return [[[PGSQLResultRowObjectEnumerator alloc] - initWithResult: _result - row: _row] autorelease]; + return objc_autoreleaseReturnValue( + [[PGSQLResultRowObjectEnumerator alloc] initWithResult: _result + row: _row]); } - (int)countByEnumeratingWithState: (OFFastEnumerationState *)state @@ -165,17 +171,22 @@ convertType(PGresult *res, int column, OFString *string) { self = [super init]; - _result = [result retain]; - _res = result.pg_result; - _row = row; - _count = PQnfields(_res); + @try { + _result = objc_retain(result); + _res = result.pg_result; + _row = row; + _count = PQnfields(_res); + } @catch (id e) { + objc_release(self); + @throw e; + } return self; } - (void)dealloc { - [_result release]; + objc_release(_result); [super dealloc]; } diff --git a/src/exceptions/PGSQLException.m b/src/exceptions/PGSQLException.m index 1979851..2dafd23 100644 --- a/src/exceptions/PGSQLException.m +++ b/src/exceptions/PGSQLException.m @@ -29,7 +29,8 @@ + (instancetype)exceptionWithConnection: (PGSQLConnection *)connection { - return [[[self alloc] initWithConnection: connection] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] initWithConnection: connection]); } - (instancetype)init @@ -42,12 +43,12 @@ self = [super init]; @try { - _connection = [connection retain]; + _connection = objc_retain(connection); _errorMessage = [[OFString alloc] initWithCString: PQerrorMessage([_connection pg_connection]) encoding: [OFLocale encoding]]; } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -56,8 +57,8 @@ - (void)dealloc { - [_connection release]; - [_errorMessage release]; + objc_release(_connection); + objc_release(_errorMessage); [super dealloc]; } diff --git a/src/exceptions/PGSQLExecuteCommandFailedException.m b/src/exceptions/PGSQLExecuteCommandFailedException.m index 833b6c3..ad4799d 100644 --- a/src/exceptions/PGSQLExecuteCommandFailedException.m +++ b/src/exceptions/PGSQLExecuteCommandFailedException.m @@ -29,8 +29,9 @@ + (instancetype)exceptionWithConnection: (PGSQLConnection *)connection command: (OFConstantString *)command { - return [[[self alloc] initWithConnection: connection - command: command] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] initWithConnection: connection + command: command]); } - (instancetype)initWithConnection: (PGSQLConnection *)connection @@ -46,7 +47,7 @@ @try { _command = [command copy]; } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -55,7 +56,7 @@ - (void)dealloc { - [_command release]; + objc_release(_command); [super dealloc]; }