aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2020-07-27 00:06:31 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2020-07-27 00:06:31 +0200
commitc60b7b34759f866549752a97a83c12f04f8a903e (patch)
treea732b950e38036bf007b2ae694146ccf99638a1a /module/vcomponent.scm
parentChange html-id to randomly generate. (diff)
downloadcalp-c60b7b34759f866549752a97a83c12f04f8a903e.tar.gz
calp-c60b7b34759f866549752a97a83c12f04f8a903e.tar.xz
Crash properly on overflow on remove event.
Diffstat (limited to 'module/vcomponent.scm')
-rw-r--r--module/vcomponent.scm29
1 files changed, 14 insertions, 15 deletions
diff --git a/module/vcomponent.scm b/module/vcomponent.scm
index 215ab984..2e13f1c8 100644
--- a/module/vcomponent.scm
+++ b/module/vcomponent.scm
@@ -105,23 +105,22 @@
(define-public (remove-event event)
-
- (let ((events (getf 'events)))
- (setf 'events (delete event events)))
+ (let ((events (delete event (getf 'events))))
+ (setf 'events events))
(if (repeating? event)
- (let ((repeating (getf 'repeating-events)))
- (setf 'repeating-events (delete event repeating)))
- (let ((regular (getf 'fixed-events)))
- (setf 'fixed-events (delete event regular))))
-
- (let ((event-set (getf 'event-set)))
- (setf 'event-set
- (stream-remove
- (lambda (ev)
- (equal? (prop ev 'UID)
- (prop event 'UID)))
- event-set)))
+ (let ((repeating (delete event (getf 'repeating-events))))
+ (setf 'repeating-events repeating))
+ (let ((regular (delete event (getf 'fixed-events))))
+ (setf 'fixed-events regular)))
+
+ (let ((event-set
+ (stream-remove
+ (lambda (ev)
+ (equal? (prop ev 'UID)
+ (prop event 'UID)))
+ (getf 'event-set))))
+ (setf 'event-set event-set))
(hash-set! (getf 'uid-map) (prop event 'UID)
#f))