aboutsummaryrefslogtreecommitdiff
path: root/module/vcomponent
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-06-10 23:08:47 +0200
committerHugo Hörnquist <hugo@lysator.liu.se>2022-06-10 23:24:27 +0200
commite6f2f111b51c2d3be380442d665b64d4d4a024ce (patch)
tree2531e3a7a1c89a2e9211382424726be969b60d1f /module/vcomponent
parentResolve TODO in module-dependants. (diff)
downloadcalp-e6f2f111b51c2d3be380442d665b64d4d4a024ce.tar.gz
calp-e6f2f111b51c2d3be380442d665b64d4d4a024ce.tar.xz
Clean up creation of global-event-object.
Diffstat (limited to 'module/vcomponent')
-rw-r--r--module/vcomponent/util/instance.scm11
-rw-r--r--module/vcomponent/util/instance/methods.scm5
2 files changed, 9 insertions, 7 deletions
diff --git a/module/vcomponent/util/instance.scm b/module/vcomponent/util/instance.scm
index 038c6505..2004f13e 100644
--- a/module/vcomponent/util/instance.scm
+++ b/module/vcomponent/util/instance.scm
@@ -1,7 +1,7 @@
(define-module (vcomponent util instance)
:use-module (hnh util)
- :use-module ((oop goops) :select (make))
:use-module (calp translation)
+ :use-module ((vcomponent util instance methods) :select (make-instance))
:export (global-event-object)
)
@@ -12,11 +12,8 @@
;; TODO this is loaded on compile, meaning that Guile's auto-compiler may
;; evaluate this to early.
(define-once global-event-object
- (make (@@ (vcomponent util instance methods) <events>)
- calendar-files: ((@ (vcomponent config) calendar-files))))
+ (make-instance ((@ (vcomponent config) calendar-files))))
(define-public (reload)
- (let ((new-value (make (@@ (vcomponent util instance methods) <events>)
- calendar-files: ((@ (vcomponent config) calendar-files)))))
- (format (current-error-port) (_ "Reload done~%"))
- (set! global-event-object new-value)))
+ (begin (set! global-event-object (make-instance ((@ (vcomponent config) calendar-files))))
+ (format (current-error-port) (_ "Reload done~%"))))
diff --git a/module/vcomponent/util/instance/methods.scm b/module/vcomponent/util/instance/methods.scm
index 028e01c0..0ad1fdc4 100644
--- a/module/vcomponent/util/instance/methods.scm
+++ b/module/vcomponent/util/instance/methods.scm
@@ -17,6 +17,8 @@
:export (add-event
remove-event
+ make-instance
+
get-event-by-uid
fixed-events-in-range
@@ -54,6 +56,9 @@
)
+(define (make-instance calendar-files)
+ (make <events> calendar-files: calendar-files))
+
(define-method (get-event-by-uid (this <events>) uid)
(hash-ref (slot-ref this 'uid-map) uid))