Handle marshalling NULL objects.
This commit is contained in:
+2
-2
@@ -252,7 +252,7 @@ wl_connection_vmarshal(struct wl_connection *connection,
|
|||||||
case 'o':
|
case 'o':
|
||||||
case 'n':
|
case 'n':
|
||||||
object = va_arg(ap, struct wl_object *);
|
object = va_arg(ap, struct wl_object *);
|
||||||
*p++ = object->id;
|
*p++ = object ? object->id : 0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
@@ -331,7 +331,7 @@ wl_connection_demarshal(struct wl_connection *connection,
|
|||||||
case 'o':
|
case 'o':
|
||||||
types[i] = &ffi_type_pointer;
|
types[i] = &ffi_type_pointer;
|
||||||
object = wl_hash_lookup(objects, *p);
|
object = wl_hash_lookup(objects, *p);
|
||||||
if (object == NULL)
|
if (object == NULL && *p != 0)
|
||||||
printf("unknown object (%d)\n", *p);
|
printf("unknown object (%d)\n", *p);
|
||||||
values[i].object = object;
|
values[i].object = object;
|
||||||
p++;
|
p++;
|
||||||
|
|||||||
Reference in New Issue
Block a user