summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2022-11-21 08:04:22 +0100
committerGravatar default2022-11-21 08:04:22 +0100
commitbf214d45e9a9ecdcb4dd5b9b183b2a026512e71b (patch)
tree30dc24f711564b489ed39be6892b99deed3ee6e4
parentDon't hide messages (and their children) if it's already hidden. (diff)
downloadsnac2-bf214d45e9a9ecdcb4dd5b9b183b2a026512e71b.tar.gz
snac2-bf214d45e9a9ecdcb4dd5b9b183b2a026512e71b.tar.xz
snac2-bf214d45e9a9ecdcb4dd5b9b183b2a026512e71b.zip
In _timeline_write(), limit the number of grampa levels updated.
-rw-r--r--data.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/data.c b/data.c
index 7ac4f87..4de2a23 100644
--- a/data.c
+++ b/data.c
@@ -517,6 +517,8 @@ int _timeline_write(snac *snac, char *id, char *msg, char *parent, char *referre
517 /* now iterate all parents up, just renaming the files */ 517 /* now iterate all parents up, just renaming the files */
518 xs *grampa = xs_dup(xs_dict_get(meta, "parent")); 518 xs *grampa = xs_dup(xs_dict_get(meta, "parent"));
519 519
520 int max_levels = 10;
521
520 while (!xs_is_null(grampa)) { 522 while (!xs_is_null(grampa)) {
521 xs *gofn = _timeline_find_fn(snac, grampa); 523 xs *gofn = _timeline_find_fn(snac, grampa);
522 524
@@ -555,6 +557,13 @@ int _timeline_write(snac *snac, char *id, char *msg, char *parent, char *referre
555 xs_free(grampa); 557 xs_free(grampa);
556 grampa = xs_dup(p); 558 grampa = xs_dup(p);
557 } 559 }
560 else
561 break;
562
563 if (--max_levels == 0) {
564 snac_log(snac, xs_dup("_timeline_write maximum grampa levels reached"));
565 break;
566 }
558 } 567 }
559 } 568 }
560 569