chiark / gitweb /
Modified GVALUE-TYPE to return NIL on uninitialized gvalues
authorespen <espen>
Tue, 3 Jul 2007 08:43:21 +0000 (08:43 +0000)
committerespen <espen>
Tue, 3 Jul 2007 08:43:21 +0000 (08:43 +0000)
glib/gparam.lisp

index 6b4bf1b402c38e74003ed0cf7a2cc6bf67333867..d83a3d8a9360c60e8c3c045a449852d826db9a8f 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: gparam.lisp,v 1.24 2007-06-01 06:18:59 espen Exp $
+;; $Id: gparam.lisp,v 1.25 2007-07-03 08:43:21 espen Exp $
 
 (in-package "GLIB")
 
@@ -69,10 +69,12 @@ (defun gvalue-type (gvalue)
              (let ((parent (type-parent type)))
                (unless (zerop parent)
                  (find-most-specific-known-type parent))))))
-    (or
-     (find-most-specific-known-type (ref-type-number gvalue))
-     ;; This will signal an error if the type hierarchy is unknown
-     (type-from-number (ref-type-number gvalue) t))))
+    (let ((type-number (ref-type-number gvalue)))
+      (unless (zerop type-number)
+       (or     
+        (find-most-specific-known-type type-number)
+        ;; This will signal an error if the type hierarchy is unknown
+        (type-from-number type-number t))))))
 
 (defun gvalue-get (gvalue)
   (funcall (reader-function (gvalue-type gvalue))