Hi,
Quoting Ivan Shvedunov (ivan4th@gmail.com):
- The most recent commit is an attempt to cache marshaller
closures too, which didn't succeed so far (perhaps I've did something silly there). If you enable cached version of MARSHALLER CommonQt crashes pretty soon when method invocation callbacks happen. This commit shouldn't be pushed to the main repository yet of course.
having just read the diff:
If we went this route after all, I think the target <type> would need to be part of the hash key. :-)
#+nil (let ((marshaller-table (make-hash-table :test #'equal))) (defun marshaller (obj <type>) - (let ((key (cons (type-of obj) + (let ((key (list (type-of obj) + <type> (when (typep obj 'qobject) (qobject-class obj))))) (or (gethash key marshaller-table) (setf (gethash key marshaller-table) (marshaller-2 (type-of obj) (when (typep obj 'qobject) (qobject-class obj)) <type>))))))
David