{
struct pipe_surface *old_dst = *dst;
- if (pipe_reference_described(&old_dst->reference, &src->reference,
+ if (pipe_reference_described(old_dst ? &old_dst->reference : NULL,
+ src ? &src->reference : NULL,
(debug_reference_descriptor)
debug_describe_surface))
old_dst->context->surface_destroy(old_dst->context, old_dst);
{
struct pipe_resource *old_dst = *dst;
- if (pipe_reference_described(&old_dst->reference, &src->reference,
+ if (pipe_reference_described(old_dst ? &old_dst->reference : NULL,
+ src ? &src->reference : NULL,
(debug_reference_descriptor)
debug_describe_resource)) {
/* Avoid recursion, which would prevent inlining this function */
old_dst->screen->resource_destroy(old_dst->screen, old_dst);
old_dst = next;
- } while (pipe_reference_described(&old_dst->reference, NULL,
+ } while (pipe_reference_described(old_dst ? &old_dst->reference : NULL,
+ NULL,
(debug_reference_descriptor)
debug_describe_resource));
}
{
struct pipe_sampler_view *old_dst = *dst;
- if (pipe_reference_described(&old_dst->reference, &src->reference,
+ if (pipe_reference_described(old_dst ? &old_dst->reference : NULL,
+ src ? &src->reference : NULL,
(debug_reference_descriptor)
debug_describe_sampler_view))
old_dst->context->sampler_view_destroy(old_dst->context, old_dst);
{
struct pipe_stream_output_target *old_dst = *dst;
- if (pipe_reference_described(&old_dst->reference, &src->reference,
+ if (pipe_reference_described(old_dst ? &old_dst->reference : NULL,
+ src ? &src->reference : NULL,
(debug_reference_descriptor)debug_describe_so_target))
old_dst->context->stream_output_target_destroy(old_dst->context, old_dst);
*dst = src;