diff options
author | default <nobody@localhost> | 2022-11-27 09:45:06 +0100 |
---|---|---|
committer | default <nobody@localhost> | 2022-11-27 09:45:06 +0100 |
commit | 9a0a03dd9f0eb3d8201afd55de3cc7a49ff83b1a (patch) | |
tree | c2b5286e6bbcc1f4975e774e3adf7074e3c7dc87 | |
parent | 832bbfd5ebf0c756c65e2e710656b6e875bfeb08 (diff) |
New function object_del_if_unref().
-rw-r--r-- | data.c | 18 | ||||
-rw-r--r-- | snac.h | 1 |
2 files changed, 17 insertions, 2 deletions
@@ -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; } @@ -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); |