chiark
/
gitweb
/
~mdw
/
clg
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Work around for broken def-type-method
[clg]
/
glib
/
genums.lisp
diff --git
a/glib/genums.lisp
b/glib/genums.lisp
index 224f48cf378c1f18e84e618e8e5ad36fd31db51d..a3c4d9071256eaf5a9940f8a076dda299f6876a2 100644
(file)
--- a/
glib/genums.lisp
+++ b/
glib/genums.lisp
@@
-20,7
+20,7
@@
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-;; $Id: genums.lisp,v 1.1
7 2006-02-06 18:12:19
espen Exp $
+;; $Id: genums.lisp,v 1.1
8 2006-02-19 22:25:31
espen Exp $
(in-package "GLIB")
(in-package "GLIB")
@@
-57,6
+57,9
@@
(defmethod to-alien-form (form (type (eql 'enum)) &rest args)
(t (error 'type-error :datum ,form :expected-type '(enum ,@args)))))
(t (error 'type-error :datum ,form :expected-type '(enum ,@args)))))
+(defmethod callback-from-alien-form (form (type (eql 'enum)) &rest args)
+ (apply #'from-alien-form form type args))
+
(defmethod from-alien-form (form (type (eql 'enum)) &rest args)
(declare (ignore type))
`(case ,form
(defmethod from-alien-form (form (type (eql 'enum)) &rest args)
(declare (ignore type))
`(case ,form
@@
-173,6
+176,9
@@
(defmethod to-alien-form (flags (type (eql 'flags)) &rest args)
(t (error 'type-error :datum ,flags
:expected-type '(,type ,@args)))))))
(t (error 'type-error :datum ,flags
:expected-type '(,type ,@args)))))))
+(defmethod callback-from-alien-form (form (type (eql 'flags)) &rest args)
+ (apply #'from-alien-form form type args))
+
(defmethod from-alien-form (value (type (eql 'flags)) &rest args)
(declare (ignore type))
`(loop
(defmethod from-alien-form (value (type (eql 'flags)) &rest args)
(declare (ignore type))
`(loop