snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit 9a0a03dd9f0eb3d8201afd55de3cc7a49ff83b1a
parent 832bbfd5ebf0c756c65e2e710656b6e875bfeb08
Author: default <nobody@localhost>
Date:   Sun, 27 Nov 2022 09:45:06 +0100

New function object_del_if_unref().

Diffstat:
Mdata.c | 18++++++++++++++++--
Msnac.h | 1+
2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/data.c b/data.c @@ -552,6 +552,20 @@ int object_del(const char *id) } +int object_del_if_unref(const char *id) +/* deletes an object if its n_links < 2 */ +{ + xs *fn = _object_fn(id); + int n_links; + int ret = 0; + + if (mtime_nl(fn, &n_links) > 0.0 && n_links < 2) + ret = object_del(id); + + return ret; +} + + d_char *object_children(const char *id) /* returns the list of an object's children */ { @@ -791,8 +805,8 @@ int timeline_del(snac *snac, char *id) object_user_cache_del(snac, id, "public"); object_user_cache_del(snac, id, "private"); - /* NOTE: this is a good place to count the # of links - of the object and object_del() it if it's < 2 */ + /* try to delete the object if it's not used elsewhere */ + object_del_if_unref(id); return ret; } diff --git a/snac.h b/snac.h @@ -60,6 +60,7 @@ d_char *index_list(const char *fn, int max); d_char *index_list_desc(const char *fn, int max); int object_del(const char *id); +int object_del_if_unref(const char *id); int follower_add(snac *snac, char *actor, char *msg); int follower_del(snac *snac, char *actor);