diff options
-rw-r--r-- | libdimension/Makefile.am | 2 | ||||
-rw-r--r-- | libdimension/dimension-internal.h | 1 | ||||
-rw-r--r-- | libdimension/dimension.h | 1 | ||||
-rw-r--r-- | libdimension/dimension/refcount.h | 36 | ||||
-rw-r--r-- | libdimension/refcount-internal.h | 44 | ||||
-rw-r--r-- | libdimension/tests/Makefile.am | 4 | ||||
-rw-r--r-- | libdimension/tests/refcount.c | 72 |
7 files changed, 0 insertions, 160 deletions
diff --git a/libdimension/Makefile.am b/libdimension/Makefile.am index 5cb3e0d..00d0549 100644 --- a/libdimension/Makefile.am +++ b/libdimension/Makefile.am @@ -56,7 +56,6 @@ nobase_include_HEADERS = dimension.h \ dimension/polynomial.h \ dimension/pool.h \ dimension/ray_trace.h \ - dimension/refcount.h \ dimension/scene.h \ dimension/tcolor.h \ dimension/texture.h \ @@ -107,7 +106,6 @@ libdimension_la_SOURCES = $(nobase_include_HEADERS) \ prtree.c \ prtree.h \ ray_trace.c \ - refcount-internal.h \ reflection.c \ rgba.c \ rgba.h \ diff --git a/libdimension/dimension-internal.h b/libdimension/dimension-internal.h index a0bbe61..197447f 100644 --- a/libdimension/dimension-internal.h +++ b/libdimension/dimension-internal.h @@ -28,7 +28,6 @@ #define DIMENSION_INTERNAL_H #include "dimension.h" -#include "refcount-internal.h" #include "compiler-internal.h" #include "profile.h" #include "platform.h" diff --git a/libdimension/dimension.h b/libdimension/dimension.h index d9cfff9..929c136 100644 --- a/libdimension/dimension.h +++ b/libdimension/dimension.h @@ -78,7 +78,6 @@ typedef void dmnsn_free_fn(void *ptr); #include <dimension/error.h> #include <dimension/malloc.h> #include <dimension/pool.h> -#include <dimension/refcount.h> #include <dimension/array.h> #include <dimension/dictionary.h> #include <dimension/future.h> diff --git a/libdimension/dimension/refcount.h b/libdimension/dimension/refcount.h deleted file mode 100644 index d0f688e..0000000 --- a/libdimension/dimension/refcount.h +++ /dev/null @@ -1,36 +0,0 @@ -/************************************************************************* - * Copyright (C) 2011 Tavian Barnes <tavianator@tavianator.com> * - * * - * This file is part of The Dimension Library. * - * * - * The Dimension Library is free software; you can redistribute it and/ * - * or modify it under the terms of the GNU Lesser General Public License * - * as published by the Free Software Foundation; either version 3 of the * - * License, or (at your option) any later version. * - * * - * The Dimension Library is distributed in the hope that it will be * - * useful, but WITHOUT ANY WARRANTY; without even the implied warranty * - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser General Public * - * License along with this program. If not, see * - * <http://www.gnu.org/licenses/>. * - *************************************************************************/ - -/** - * @file - * Generic reference count implementation. - */ - -/** @internal The name of the reference count field in all structs. */ -#define DMNSN_REFCOUNT_FIELD refcount - -/** @internal Declare a reference count field in a struct. */ -#define DMNSN_REFCOUNT unsigned int DMNSN_REFCOUNT_FIELD - -/** - * Increment a reference count. - * @param[in,out] object The reference-counted object to acquire. - */ -#define DMNSN_INCREF(object) (++(object)->DMNSN_REFCOUNT_FIELD) diff --git a/libdimension/refcount-internal.h b/libdimension/refcount-internal.h deleted file mode 100644 index 592bd5a..0000000 --- a/libdimension/refcount-internal.h +++ /dev/null @@ -1,44 +0,0 @@ -/************************************************************************* - * Copyright (C) 2010-2011 Tavian Barnes <tavianator@tavianator.com> * - * * - * This file is part of The Dimension Library. * - * * - * The Dimension Library is free software; you can redistribute it and/ * - * or modify it under the terms of the GNU Lesser General Public License * - * as published by the Free Software Foundation; either version 3 of the * - * License, or (at your option) any later version. * - * * - * The Dimension Library is distributed in the hope that it will be * - * useful, but WITHOUT ANY WARRANTY; without even the implied warranty * - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * - * Lesser General Public License for more details. * - * * - * You should have received a copy of the GNU Lesser General Public * - * License along with this program. If not, see * - * <http://www.gnu.org/licenses/>. * - *************************************************************************/ - -/** - * @file - * Reference count internal API. - */ - -/** - * Initialize a reference count. - * @param[in,out] object The reference-counted object. - */ -#define DMNSN_REFCOUNT_INIT(object) (void)((object)->DMNSN_REFCOUNT_FIELD = 1) - -/** - * Initialize a reference count in a statically-allocated object. - */ -#define DMNSN_REFCOUNT_INITIALIZER .DMNSN_REFCOUNT_FIELD = 1 - -/** - * Decrement a reference count. - * @param[in,out] object The reference-counted object to release. - * @return Whether the object is now garbage. - */ -#define DMNSN_DECREF(object) \ - ((object) && ((object)->DMNSN_REFCOUNT_FIELD == 0 \ - || --(object)->DMNSN_REFCOUNT_FIELD == 0)) diff --git a/libdimension/tests/Makefile.am b/libdimension/tests/Makefile.am index 5238e7b..f56bd8b 100644 --- a/libdimension/tests/Makefile.am +++ b/libdimension/tests/Makefile.am @@ -27,7 +27,6 @@ check_PROGRAMS = warning.test \ error.test \ custom-error-fn.test \ pool.test \ - refcount.test \ dictionary.test \ polynomial.test \ prtree.test \ @@ -78,9 +77,6 @@ custom_error_fn_test_LDADD = libdimension-tests.la pool_test_SOURCES = pool.c pool_test_LDADD = libdimension-unit-test.la -refcount_test_SOURCES = refcount.c -refcount_test_LDADD = libdimension-unit-test.la - dictionary_test_SOURCES = dictionary.c dictionary_test_LDADD = libdimension-unit-test.la diff --git a/libdimension/tests/refcount.c b/libdimension/tests/refcount.c deleted file mode 100644 index 68d7c1d..0000000 --- a/libdimension/tests/refcount.c +++ /dev/null @@ -1,72 +0,0 @@ -/************************************************************************* - * Copyright (C) 2012-2014 Tavian Barnes <tavianator@tavianator.com> * - * * - * This file is part of The Dimension Test Suite. * - * * - * The Dimension Test Suite is free software; you can redistribute it * - * and/or modify it under the terms of the GNU General Public License as * - * published by the Free Software Foundation; either version 3 of the * - * License, or (at your option) any later version. * - * * - * The Dimension Test Suite is distributed in the hope that it will be * - * useful, but WITHOUT ANY WARRANTY; without even the implied warranty * - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * - * General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program. If not, see <http://www.gnu.org/licenses/>. * - *************************************************************************/ - -/** - * @file - * Tests for the reference counting implementation. - */ - -#include "dimension-internal.h" -#include "tests.h" - -typedef struct dmnsn_foo { - DMNSN_REFCOUNT; -} dmnsn_foo; - -static dmnsn_foo * -dmnsn_new_foo(void) -{ - dmnsn_foo *foo = DMNSN_MALLOC(dmnsn_foo); - DMNSN_REFCOUNT_INIT(foo); - return foo; -} - -static void -dmnsn_delete_foo(dmnsn_foo *foo) -{ - if (DMNSN_DECREF(foo)) { - dmnsn_free(foo); - } -} - -static dmnsn_foo dmnsn_global_foo = { - DMNSN_REFCOUNT_INITIALIZER, -}; - -DMNSN_TEST(refcount, inc_dec) -{ - dmnsn_foo *foo = dmnsn_new_foo(); - DMNSN_INCREF(foo); - dmnsn_delete_foo(foo); - dmnsn_delete_foo(foo); -} - -DMNSN_TEST(refcount, decref_null) -{ - dmnsn_foo *foo = NULL; - ck_assert(!DMNSN_DECREF(foo)); -} - -DMNSN_TEST(refcount, global) -{ - /* Suppress "address will always evaluate to true" warning */ - dmnsn_foo *global = &dmnsn_global_foo; - DMNSN_INCREF(global); - ck_assert(!DMNSN_DECREF(global)); -} |