chiark / gitweb /
Changed return type for SIGNAL-NAME
[clg] / glib / gcallback.lisp
index 329bb606e5b1888b728908d4131ac39941ca84c6..357535d94b434cacfdda31a3e6511425fb3699dc 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: gcallback.lisp,v 1.46 2007-08-20 11:15:13 espen Exp $
+;; $Id: gcallback.lisp,v 1.49 2008-04-11 20:51:45 espen Exp $
 
 (in-package "GLIB")
 
@@ -170,7 +170,7 @@ (defbinding signal-lookup (name type) unsigned-int
   ((signal-name-to-string name) string)
   ((find-type-number type t) type-number))
 
-(defbinding signal-name () (copy-of string)
+(defbinding signal-name () (or null (copy-of string))
   (signal-id unsigned-int))
 
 (defbinding signal-list-ids (type) (vector unsigned-int n-ids)
@@ -244,6 +244,8 @@ (defun describe-signal (signal-id &optional type)
 
 ;;;; Signal connecting and controlling
 
+(define-flags-type connect-flags :after :swapped)
+
 (defvar *overridden-signals* (make-hash-table :test 'equalp))
 
 (defbinding %signal-override-class-closure () nil
@@ -504,7 +506,7 @@ (defun create-signal-emit-function (signal-id)
               finally 
               (if return-type
                   (return 
-                   (with-gvalue (return-value)
+                   (with-gvalue (return-value return-type)
                      (%signal-emitv params signal-id detail return-value)))
                 (%signal-emitv params signal-id detail (make-pointer 0))))
            (loop