X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fexternal-formats%2Fmb-util.lisp;h=0cb711db44c3fd63d7a74400323ef61627973801;hb=95591ed483dbb8c0846c129953acac1554f28809;hp=e8830997455db6c3b57119cb4369875c1826268a;hpb=f2db6743b1fadeea9e72cb583d857851c87efcd4;p=sbcl.git diff --git a/src/code/external-formats/mb-util.lisp b/src/code/external-formats/mb-util.lisp index e883099..0cb711d 100644 --- a/src/code/external-formats/mb-util.lisp +++ b/src/code/external-formats/mb-util.lisp @@ -1,15 +1,12 @@ (in-package "SB!IMPL") -(defun make-multibyte-mapper (list) +(defmacro define-multibyte-mapper (name list) (let ((list (sort (copy-list list) #'< :key #'car)) (hi (loop for x in list maximize (max (car x) (cadr x))))) - (make-array (list (length list) 2) - :element-type (list 'integer 0 hi) - :initial-contents list))) - -(defmacro define-multibyte-mapper (name list) - `(defparameter ,name - (make-multibyte-mapper ,list))) + `(defparameter ,name + (make-array '(,(length list) 2) + :element-type '(integer 0 ,hi) + :initial-contents ',list)))) (defun get-multibyte-mapper (table code) (declare (optimize speed (safety 0))