diff --git a/gcontext.lisp b/gcontext.lisp index afd7a77c5c87b051d69217802451f7ff75dbbaaa..43d1f51aec52f4957fdc87ead8f4952b497e6efd 100644 --- a/gcontext.lisp +++ b/gcontext.lisp @@ -843,12 +843,11 @@ (if i (setq mask (the xgcmask (logior mask (the xgcmask (svref *gcontext-masks* i))))) - (multiple-value-bind (extension index) - (find key *gcontext-extensions* :key #'gcontext-extension-name) + (let ((extension (find key *gcontext-extensions* :key #'gcontext-extension-name))) (if extension (funcall (gcontext-extension-copy-function extension) src dst (svref (gcontext-local-state src) - (index+ index *gcontext-data-length*))) + (index+ (position extension *gcontext-extensions*) *gcontext-data-length*))) (x-type-error key 'gcontext-key)))))) (when (plusp mask)