Bug fix and fix to load files generated with glade-2
[clg] / gffi / proxy.lisp
index b7cdaed..9cf15ca 100644 (file)
@@ -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.
 
-;; $Id: proxy.lisp,v 1.2 2006-06-08 13:25:09 espen Exp $
+;; $Id: proxy.lisp,v 1.4 2006-08-16 12:09:03 espen Exp $
 
 (in-package "GFFI")
 
       (funcall (instance-finalizer instance)))
     (slot-makunbound instance 'location)
     (cancel-finalization instance))
-  ;; We can't cached invalidated instances in CLISP beacuse it is
+  ;; We can't cache invalidated instances in CLISP beacuse it is
   ;; not possible to cancel finalization
   #-clisp(cache-invalidated-instance instance))
 
         (call-next-method))
       (call-next-method)))
   
+  (defmethod slot-readable-p ((slotd effective-alien-slot-definition))
+    (declare (ignore slotd))
+    t)
 
-  (defmethod compute-slot-reader-function ((slotd effective-alien-slot-definition))
+  (defmethod compute-slot-reader-function ((slotd effective-alien-slot-definition) &optional signal-unbound-p)
+    (declare (ignore signal-unbound-p))
     (let* ((type (slot-definition-type slotd))
           (offset (slot-definition-offset slotd))
           (reader (reader-function type)))
       #'(lambda (object)
          (funcall reader (foreign-location object) offset))))
 
+  (defmethod slot-writable-p ((slotd effective-alien-slot-definition))
+    (declare (ignore slotd))
+    t)
+
   (defmethod compute-slot-writer-function ((slotd effective-alien-slot-definition))
     (let* ((type (slot-definition-type slotd))
           (offset (slot-definition-offset slotd))
            (funcall writer value location offset))
          value)))
   
-  (defmethod compute-slot-reader-function ((slotd effective-virtual-alien-slot-definition))
+  (defmethod compute-slot-reader-function ((slotd effective-virtual-alien-slot-definition) &optional signal-unbound-p)
+    (declare (ignore signal-unbound-p))
     (if (and (slot-boundp slotd 'getter) (stringp (slot-definition-getter slotd)))
        (let ((getter (slot-definition-getter slotd))
              (type (slot-definition-type slotd))