From 6d30d66efb028fbafb58712aa5b71cadfeef2e32 Mon Sep 17 00:00:00 2001 From: Dave Foster Date: Thu, 20 Sep 2007 15:30:18 -0400 Subject: Adding RrButton to libobrender, ref counted appearances. --- obrender/render.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'obrender/render.c') diff --git a/obrender/render.c b/obrender/render.c index fb59e216..7a342042 100644 --- a/obrender/render.c +++ b/obrender/render.c @@ -204,6 +204,7 @@ RrAppearance *RrAppearanceNew(const RrInstance *inst, gint numtex) out = g_slice_new0(RrAppearance); out->inst = inst; + out->ref = 1; out->textures = numtex; out->surface.bevel_light_adjust = 128; out->surface.bevel_dark_adjust = 64; @@ -231,12 +232,22 @@ void RrAppearanceClearTextures(RrAppearance *a) memset(a->texture, 0, a->textures * sizeof(RrTexture)); } +/* shallow copy means up the ref count and return it */ +RrAppearance *RrAppearanceCopyShallow(RrAppearance *orig) +{ + orig->ref++; + return orig; +} + +/* deep copy of orig, means reset ref to 1 on copy + * and copy each thing memwise. */ RrAppearance *RrAppearanceCopy(RrAppearance *orig) { RrSurface *spo, *spc; RrAppearance *copy = g_slice_new(RrAppearance); copy->inst = orig->inst; + copy->ref = 1; spo = &(orig->surface); spc = &(copy->surface); @@ -316,6 +327,7 @@ RrAppearance *RrAppearanceCopy(RrAppearance *orig) return copy; } +/* now decrements ref counter, and frees only if ref <= 0 */ void RrAppearanceFree(RrAppearance *a) { if (a) { -- cgit v1.2.3 From 0ae3388b6a6cef0f33f26369ccc3cdd5687ea930 Mon Sep 17 00:00:00 2001 From: Dave Foster Date: Thu, 20 Sep 2007 22:36:52 -0400 Subject: Button proper freeing/newing. --- obrender/render.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'obrender/render.c') diff --git a/obrender/render.c b/obrender/render.c index 7a342042..cb698d6b 100644 --- a/obrender/render.c +++ b/obrender/render.c @@ -204,7 +204,6 @@ RrAppearance *RrAppearanceNew(const RrInstance *inst, gint numtex) out = g_slice_new0(RrAppearance); out->inst = inst; - out->ref = 1; out->textures = numtex; out->surface.bevel_light_adjust = 128; out->surface.bevel_dark_adjust = 64; @@ -247,7 +246,6 @@ RrAppearance *RrAppearanceCopy(RrAppearance *orig) RrAppearance *copy = g_slice_new(RrAppearance); copy->inst = orig->inst; - copy->ref = 1; spo = &(orig->surface); spc = &(copy->surface); -- cgit v1.2.3 From 95ed8437020ca3070d7cafcdfef78f8b3985fb5f Mon Sep 17 00:00:00 2001 From: Dave Foster Date: Tue, 12 Oct 2010 23:59:51 -0400 Subject: cleaning up remnants of bad rebase merges and modernizing some sections --- obrender/render.c | 7 ------- 1 file changed, 7 deletions(-) (limited to 'obrender/render.c') diff --git a/obrender/render.c b/obrender/render.c index cb698d6b..fe9a2a80 100644 --- a/obrender/render.c +++ b/obrender/render.c @@ -231,13 +231,6 @@ void RrAppearanceClearTextures(RrAppearance *a) memset(a->texture, 0, a->textures * sizeof(RrTexture)); } -/* shallow copy means up the ref count and return it */ -RrAppearance *RrAppearanceCopyShallow(RrAppearance *orig) -{ - orig->ref++; - return orig; -} - /* deep copy of orig, means reset ref to 1 on copy * and copy each thing memwise. */ RrAppearance *RrAppearanceCopy(RrAppearance *orig) -- cgit v1.2.3