diff --git a/ObjSQLite3.oc.in b/ObjSQLite3.oc.in index 9843ef3..c667f23 100644 --- a/ObjSQLite3.oc.in +++ b/ObjSQLite3.oc.in @@ -1,5 +1,5 @@ package_format 1 -CPPFLAGS="$CPPFLAGS @SQLITE3_CPPFLAGS@" +CPPFLAGS="$CPPFLAGS -I@includedir@ @SQLITE3_CPPFLAGS@" LIBS="-L@libdir@ -lobjsqlite3 @SQLITE3_LIBS@ $LIBS" FRAMEWORK_LIBS="-L@libdir@ -lobjsqlite3 @SQLITE3_LIBS@ $FRAMEWORK_LIBS" STATIC_LIBS="@libdir@/libobjsqlite3.a @SQLITE3_LIBS@ $STATIC_LIBS" diff --git a/meson.build b/meson.build index d6fef43..63ca0db 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('ObjSQLite3', 'objc', - version: '1.0', + version: '1.0.1', meson_version: '>= 1.5.0', default_options: { 'warning_level': '3', @@ -31,6 +31,7 @@ configure_file( input: 'ObjSQLite3.oc.in', output: 'ObjSQLite3.oc', configuration: { + 'includedir': get_option('prefix') / get_option('includedir'), 'libdir': get_option('prefix') / get_option('libdir'), 'SQLITE3_CPPFLAGS': sqlite3_cflags, 'SQLITE3_LIBS': sqlite3_libs, diff --git a/src/ObjSQLite3.h b/src/ObjSQLite3.h index 2b466ef..fab5408 100644 --- a/src/ObjSQLite3.h +++ b/src/ObjSQLite3.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020 Jonathan Schleifer + * Copyright (c) 2020, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff --git a/src/SL3Connection.h b/src/SL3Connection.h index 345c157..498ac91 100644 --- a/src/SL3Connection.h +++ b/src/SL3Connection.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff --git a/src/SL3Connection.m b/src/SL3Connection.m index 12474f6..6b7fd91 100644 --- a/src/SL3Connection.m +++ b/src/SL3Connection.m @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -26,12 +26,13 @@ @implementation SL3Connection + (instancetype)connectionWithIRI: (OFIRI *)IRI { - return [[[self alloc] initWithIRI: IRI] autorelease]; + return objc_autoreleaseReturnValue([[self alloc] initWithIRI: IRI]); } + (instancetype)connectionWithIRI: (OFIRI *)IRI flags: (int)flags { - return [[[self alloc] initWithIRI: IRI flags: flags] autorelease]; + return objc_autoreleaseReturnValue([[self alloc] initWithIRI: IRI + flags: flags]); } - (instancetype)initWithIRI: (OFIRI *)IRI @@ -54,7 +55,7 @@ flags: flags errorCode: code]; } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -70,9 +71,9 @@ - (SL3PreparedStatement *)prepareStatement: (OFConstantString *)SQLStatement { - return [[[SL3PreparedStatement alloc] + return objc_autoreleaseReturnValue([[SL3PreparedStatement alloc] sl3_initWithConnection: self - SQLStatement: SQLStatement] autorelease]; + SQLStatement: SQLStatement]); } - (void)executeStatement: (OFConstantString *)SQLStatement diff --git a/src/SL3PreparedStatement+Private.h b/src/SL3PreparedStatement+Private.h index 5784384..1734472 100644 --- a/src/SL3PreparedStatement+Private.h +++ b/src/SL3PreparedStatement+Private.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020 Jonathan Schleifer + * Copyright (c) 2020, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff --git a/src/SL3PreparedStatement.h b/src/SL3PreparedStatement.h index 43e068f..e7c23b8 100644 --- a/src/SL3PreparedStatement.h +++ b/src/SL3PreparedStatement.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff --git a/src/SL3PreparedStatement.m b/src/SL3PreparedStatement.m index 6ee424c..72878f1 100644 --- a/src/SL3PreparedStatement.m +++ b/src/SL3PreparedStatement.m @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2021, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2021, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -25,12 +25,6 @@ #import "SL3PrepareStatementFailedException.h" #import "SL3ResetStatementFailedException.h" -static void -releaseObject(void *object) -{ - [(id)object release]; -} - @implementation SL3PreparedStatement - (instancetype)sl3_initWithConnection: (SL3Connection *)connection SQLStatement: (OFConstantString *)SQLStatement @@ -48,9 +42,9 @@ releaseObject(void *object) SQLStatement: SQLStatement errorCode: code]; - _connection = [connection retain]; + _connection = objc_retain(connection); } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -60,7 +54,7 @@ releaseObject(void *object) - (void)dealloc { sqlite3_finalize(_stmt); - [_connection release]; + objc_release(_connection); [super dealloc]; } @@ -87,13 +81,15 @@ bindObject(SL3PreparedStatement *statement, int column, id object) OFString *copy = [object copy]; code = sqlite3_bind_text64(statement->_stmt, column, - copy.UTF8String, copy.UTF8StringLength, releaseObject, + copy.UTF8String, copy.UTF8StringLength, + (void (*)(void *))(void (*)(void))objc_release, SQLITE_UTF8); } else if ([object isKindOfClass: [OFData class]]) { OFData *copy = [object copy]; code = sqlite3_bind_blob64(statement->_stmt, column, copy.items, - copy.count * copy.itemSize, releaseObject); + copy.count * copy.itemSize, + (void (*)(void *))(void (*)(void))objc_release); } else if ([object isEqual: [OFNull null]]) code = sqlite3_bind_null(statement->_stmt, column); else diff --git a/src/exceptions/SL3BindObjectFailedException.h b/src/exceptions/SL3BindObjectFailedException.h index e4313cf..12dc3d8 100644 --- a/src/exceptions/SL3BindObjectFailedException.h +++ b/src/exceptions/SL3BindObjectFailedException.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff --git a/src/exceptions/SL3BindObjectFailedException.m b/src/exceptions/SL3BindObjectFailedException.m index ecbacd3..de29814 100644 --- a/src/exceptions/SL3BindObjectFailedException.m +++ b/src/exceptions/SL3BindObjectFailedException.m @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020 Jonathan Schleifer + * Copyright (c) 2020, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -32,10 +32,11 @@ statement: (SL3PreparedStatement *)statement errorCode: (int)errorCode { - return [[[self alloc] initWithObject: object - column: column - statement: statement - errorCode: errorCode] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] initWithObject: object + column: column + statement: statement + errorCode: errorCode]); } - (instancetype)initWithConnection: (SL3Connection *)connection @@ -53,10 +54,10 @@ errorCode: errorCode]; @try { - _object = [object retain]; - _statement = [statement retain]; + _object = objc_retain(object); + _statement = objc_retain(statement); } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -65,8 +66,8 @@ - (void)dealloc { - [_object release]; - [_statement release]; + objc_release(_object); + objc_release(_statement); [super dealloc]; } diff --git a/src/exceptions/SL3ClearBindingsFailedException.h b/src/exceptions/SL3ClearBindingsFailedException.h index a4a6aa4..8363477 100644 --- a/src/exceptions/SL3ClearBindingsFailedException.h +++ b/src/exceptions/SL3ClearBindingsFailedException.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff --git a/src/exceptions/SL3ClearBindingsFailedException.m b/src/exceptions/SL3ClearBindingsFailedException.m index 7d1eacc..30afb2d 100644 --- a/src/exceptions/SL3ClearBindingsFailedException.m +++ b/src/exceptions/SL3ClearBindingsFailedException.m @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020 Jonathan Schleifer + * Copyright (c) 2020, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -30,8 +30,9 @@ + (instancetype)exceptionWithStatement: (SL3PreparedStatement *)statement errorCode: (int)errorCode { - return [[[self alloc] initWithStatement: statement - errorCode: errorCode] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] initWithStatement: statement + errorCode: errorCode]); } - (instancetype)initWithConnection: (SL3Connection *)connection @@ -47,9 +48,9 @@ errorCode: errorCode]; @try { - _statement = [statement retain]; + _statement = objc_retain(statement); } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -58,7 +59,7 @@ - (void)dealloc { - [_statement release]; + objc_release(_statement); [super dealloc]; } diff --git a/src/exceptions/SL3Exception.h b/src/exceptions/SL3Exception.h index 7765139..b2ccf6a 100644 --- a/src/exceptions/SL3Exception.h +++ b/src/exceptions/SL3Exception.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -48,8 +48,8 @@ OF_ASSUME_NONNULL_BEGIN /** * @brief Creates a new SQLite3 exception. * - * @param connection The connection for which the exception occurred. - * @param errorCode The SQLite3 error code. + * @param connection The connection for which the exception occurred + * @param errorCode The SQLite3 error code * @return A new, autoreleased SQLite3 exception */ + (instancetype)exceptionWithConnection: (nullable SL3Connection *)connection @@ -60,8 +60,8 @@ OF_ASSUME_NONNULL_BEGIN /** * @brief Initializes an already allocated SQLite3 exception. * - * @param connection The connection for which the exception occurred. - * @param errorCode The SQLite3 error code. + * @param connection The connection for which the exception occurred + * @param errorCode The SQLite3 error code * @return An initialized SQLite3 exception */ - (instancetype)initWithConnection: (nullable SL3Connection *)connection diff --git a/src/exceptions/SL3Exception.m b/src/exceptions/SL3Exception.m index 251015f..7b1b345 100644 --- a/src/exceptions/SL3Exception.m +++ b/src/exceptions/SL3Exception.m @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020 Jonathan Schleifer + * Copyright (c) 2020, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -29,8 +29,9 @@ + (instancetype)exceptionWithConnection: (SL3Connection *)connection errorCode: (int)errorCode { - return [[[self alloc] initWithConnection: connection - errorCode: errorCode] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] initWithConnection: connection + errorCode: errorCode]); } - (instancetype)init @@ -43,7 +44,7 @@ { self = [super init]; - _connection = [connection retain]; + _connection = objc_retain(connection); _errorCode = errorCode; return self; @@ -51,7 +52,7 @@ - (void)dealloc { - [_connection release]; + objc_release(_connection); [super dealloc]; } diff --git a/src/exceptions/SL3ExecuteStatementFailedException.h b/src/exceptions/SL3ExecuteStatementFailedException.h index 27f8ff8..e995965 100644 --- a/src/exceptions/SL3ExecuteStatementFailedException.h +++ b/src/exceptions/SL3ExecuteStatementFailedException.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff --git a/src/exceptions/SL3ExecuteStatementFailedException.m b/src/exceptions/SL3ExecuteStatementFailedException.m index 0322085..7639d1c 100644 --- a/src/exceptions/SL3ExecuteStatementFailedException.m +++ b/src/exceptions/SL3ExecuteStatementFailedException.m @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020 Jonathan Schleifer + * Copyright (c) 2020, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -24,8 +24,9 @@ + (instancetype)exceptionWithStatement: (SL3PreparedStatement *)statement errorCode: (int)errorCode { - return [[[self alloc] initWithStatement: statement - errorCode: errorCode] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] initWithStatement: statement + errorCode: errorCode]); } - (instancetype)initWithStatement: (SL3PreparedStatement *)statement @@ -35,9 +36,9 @@ errorCode: errorCode]; @try { - _statement = [statement retain]; + _statement = objc_retain(statement); } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -46,7 +47,7 @@ - (void)dealloc { - [_statement release]; + objc_release(_statement); [super dealloc]; } diff --git a/src/exceptions/SL3OpenFailedException.h b/src/exceptions/SL3OpenFailedException.h index a6b3a19..fe32d9e 100644 --- a/src/exceptions/SL3OpenFailedException.h +++ b/src/exceptions/SL3OpenFailedException.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff --git a/src/exceptions/SL3OpenFailedException.m b/src/exceptions/SL3OpenFailedException.m index dacdf68..1bf4c5a 100644 --- a/src/exceptions/SL3OpenFailedException.m +++ b/src/exceptions/SL3OpenFailedException.m @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020 Jonathan Schleifer + * Copyright (c) 2020, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -31,9 +31,10 @@ flags: (int)flags errorCode: (int)errorCode { - return [[[self alloc] initWithIRI: IRI - flags: flags - errorCode: errorCode] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] initWithIRI: IRI + flags: flags + errorCode: errorCode]); } - (instancetype)initWithConnection: (SL3Connection *)connection @@ -53,7 +54,7 @@ _IRI = [IRI copy]; _flags = flags; } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -62,7 +63,7 @@ - (void)dealloc { - [_IRI release]; + objc_release(_IRI); [super dealloc]; } diff --git a/src/exceptions/SL3PrepareStatementFailedException.h b/src/exceptions/SL3PrepareStatementFailedException.h index f9d9fee..610a3d9 100644 --- a/src/exceptions/SL3PrepareStatementFailedException.h +++ b/src/exceptions/SL3PrepareStatementFailedException.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff --git a/src/exceptions/SL3PrepareStatementFailedException.m b/src/exceptions/SL3PrepareStatementFailedException.m index 4ed0de5..1484302 100644 --- a/src/exceptions/SL3PrepareStatementFailedException.m +++ b/src/exceptions/SL3PrepareStatementFailedException.m @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020 Jonathan Schleifer + * Copyright (c) 2020, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -31,9 +31,10 @@ SQLStatement: (OFConstantString *)SQLStatement errorCode: (int)errorCode { - return [[[self alloc] initWithConnection: connection - SQLStatement: SQLStatement - errorCode: errorCode] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] initWithConnection: connection + SQLStatement: SQLStatement + errorCode: errorCode]); } - (instancetype)initWithConnection: (SL3Connection *)connection @@ -50,9 +51,9 @@ errorCode: errorCode]; @try { - _SQLStatement = [SQLStatement retain]; + _SQLStatement = objc_retain(SQLStatement); } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -61,7 +62,7 @@ - (void)dealloc { - [_SQLStatement release]; + objc_release(_SQLStatement); [super dealloc]; } diff --git a/src/exceptions/SL3ResetStatementFailedException.h b/src/exceptions/SL3ResetStatementFailedException.h index 3b06408..63622a7 100644 --- a/src/exceptions/SL3ResetStatementFailedException.h +++ b/src/exceptions/SL3ResetStatementFailedException.h @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above diff --git a/src/exceptions/SL3ResetStatementFailedException.m b/src/exceptions/SL3ResetStatementFailedException.m index 16a6b69..013de35 100644 --- a/src/exceptions/SL3ResetStatementFailedException.m +++ b/src/exceptions/SL3ResetStatementFailedException.m @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020 Jonathan Schleifer + * Copyright (c) 2020, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -30,8 +30,9 @@ + (instancetype)exceptionWithStatement: (SL3PreparedStatement *)statement errorCode: (int)errorCode { - return [[[self alloc] initWithStatement: statement - errorCode: errorCode] autorelease]; + return objc_autoreleaseReturnValue( + [[self alloc] initWithStatement: statement + errorCode: errorCode]); } - (instancetype)initWithConnection: (SL3Connection *)connection @@ -47,9 +48,9 @@ errorCode: errorCode]; @try { - _statement = [statement retain]; + _statement = objc_retain(statement); } @catch (id e) { - [self release]; + objc_release(self); @throw e; } @@ -58,7 +59,7 @@ - (void)dealloc { - [_statement release]; + objc_release(_statement); [super dealloc]; } diff --git a/tests/Tests.m b/tests/Tests.m index fb0b22c..0455a69 100644 --- a/tests/Tests.m +++ b/tests/Tests.m @@ -1,7 +1,7 @@ /* - * Copyright (c) 2020, 2021, 2023, 2024 Jonathan Schleifer + * Copyright (c) 2020, 2021, 2023, 2024, 2025 Jonathan Schleifer * - * https://fl.nil.im/objsqlite3 + * https://git.nil.im/ObjFW/ObjSQLite3 * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above