diff options
Diffstat (limited to 'src/common/native.c')
| -rw-r--r-- | src/common/native.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/common/native.c b/src/common/native.c index 6e1c69a..33837e4 100644 --- a/src/common/native.c +++ b/src/common/native.c @@ -12,13 +12,17 @@ void *yasl_display_get_native_handle(struct yasl_display *d) { - return d && d->ops->display_get_native_handle ? + if (!d) return NULL; + if (d->native_handle) return d->native_handle; + return d->ops && d->ops->display_get_native_handle ? d->ops->display_get_native_handle(d) : NULL; } void *yasl_surface_get_native_handle(struct yasl_surface *s) { - return s && s->display->ops->surface_get_native_handle ? + if (!s) return NULL; + if (s->native_handle) return s->native_handle; + return s->display && s->display->ops && s->display->ops->surface_get_native_handle ? s->display->ops->surface_get_native_handle(s) : NULL; } |
