actors: Removing unnecessary level of indirection around actor-message-handler.
[8sync.git] / 8sync / actors.scm
index 9b079b8a1754c788ac860a8cbccf78904f1a5b42..886e11405fb8586e3edd92fa6329ae79011083b0 100644 (file)
@@ -295,15 +295,13 @@ raise an exception if an error."
                    ;; @@: There's no reason not to use #:class instead of
                    ;;   #:each-subclass anywhere in this file, except for
                    ;;   Guile bug #25211 (#:class is broken in Guile 2.2)
-                   #:allocation #:each-subclass)
+                   #:allocation #:each-subclass
+                   #:getter actor-message-handler)
 
   ;; This is the default, "simple" way to inherit and process messages.
   (actions #:init-value '()
            #:allocation #:each-subclass))
 
-(define-method (actor-message-handler (actor <actor>))
-  (slot-ref actor 'message-handler))
-
 ;;; So these are the nicer representations of addresses.
 ;;; However, they don't serialize so easily with scheme read/write, so we're
 ;;; using the simpler cons cell version below for now.
@@ -322,13 +320,13 @@ raise an exception if an error."
 ;;
 
 (define (make-address actor-id hive-id)
-  (cons actor-id hive-id))
+  (vector actor-id hive-id))
 
 (define (address-actor-id address)
-  (car address))
+  (vector-ref address 0))
 
 (define (address-hive-id address)
-  (cdr address))
+  (vector-ref address 1))
 
 (define (address->string address)
   (string-append (address-actor-id address) "@"