Handle marshalling NULL objects.
authorKristian Høgsberg <krh@redhat.com>
Mon, 23 Feb 2009 01:57:57 +0000 (20:57 -0500)
committerKristian Høgsberg <krh@redhat.com>
Mon, 23 Feb 2009 01:57:57 +0000 (20:57 -0500)
connection.c

index be9c88b..112ee4f 100644 (file)
@@ -252,7 +252,7 @@ wl_connection_vmarshal(struct wl_connection *connection,
                case 'o':
                case 'n':
                        object = va_arg(ap, struct wl_object *);
-                       *p++ = object->id;
+                       *p++ = object ? object->id : 0;
                        break;
                default:
                        assert(0);
@@ -331,7 +331,7 @@ wl_connection_demarshal(struct wl_connection *connection,
                case 'o':
                        types[i] = &ffi_type_pointer;
                        object = wl_hash_lookup(objects, *p);
-                       if (object == NULL)
+                       if (object == NULL && *p != 0)
                                printf("unknown object (%d)\n", *p);
                        values[i].object = object;
                        p++;