summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libdimension/Makefile.am2
-rw-r--r--libdimension/dimension-internal.h1
-rw-r--r--libdimension/dimension.h1
-rw-r--r--libdimension/dimension/refcount.h36
-rw-r--r--libdimension/refcount-internal.h44
-rw-r--r--libdimension/tests/Makefile.am4
-rw-r--r--libdimension/tests/refcount.c72
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));
-}