chiark / gitweb /
Added prooper return type for gerror-signal
[clg] / glib / gerror.lisp
index 4010ae2a1711e2f1f43c12d2748bb110b0c91d05..13b22d50f96940f22a106e11a8a079687c4a4545 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: gerror.lisp,v 1.7 2006-04-28 08:27:22 espen Exp $
+;; $Id: gerror.lisp,v 1.10 2008-04-11 20:35:48 espen Exp $
 
 
 (in-package "GLIB")
@@ -30,8 +30,8 @@ (defclass gerror (struct)
    (code :allocation :alien :type int :reader gerror-code)
    (message :allocation :alien :type string :reader gerror-message))
   (:metaclass struct-class)
-  (:ref gerror-copy)
-  (:unref gerror-free))
+  (:ref %gerror-copy)
+  (:unref %gerror-free))
 
 (defbinding (%gerror-copy "g_error_copy") () pointer
   (location pointer))
@@ -40,7 +40,7 @@ (defbinding (%gerror-free "g_error_free") () nil
   (location pointer))
 
 (define-condition glib-error (error)
-  ((code :initarg :domain :reader gerror-code)
+  ((code :initarg :code :reader gerror-code)
    (message :initarg :message :reader gerror-message))
   (:report (lambda (condition stream)
             (write-string (gerror-message condition) stream))))
@@ -60,6 +60,10 @@ (defun signal-gerror (gerror)
 
 (deftype gerror-signal () 'gerror)
 
+(define-type-method return-type ((type gerror-signal))
+  (declare (ignore type))
+  '(or null gerror))
+
 (define-type-method from-alien-form ((type gerror-signal) gerror &key (ref :free))
   (declare (ignore type))
   `(let ((gerror ,(from-alien-form 'gerror gerror :ref ref)))