libweston/renderer-gl/gl-renderer.c: use glDeleteTextures() if num_textures is decrased
This patch resolves the following problem:
AddressSanitizer:DEADLYSIGNAL
=================================================================
==21652==ERROR: AddressSanitizer: FPE on unknown address 0x7f3e325c0644 (pc 0x7f3e325c0644 bp 0x7ffdb5e6d250 sp 0x7ffdb5e6d150 T0)
#0 0x7f3e325c0643 in gl_renderer_flush_damage ../libweston/renderer-gl/gl-renderer.c:1625
#1 0x7f3e352b0ff9 in surface_flush_damage ../libweston/compositor.c:2406
#2 0x7f3e352b9df0 in compositor_accumulate_damage ../libweston/compositor.c:2478
#3 0x7f3e352be89b in weston_output_repaint ../libweston/compositor.c:2716
#4 0x7f3e352c6774 in weston_output_maybe_repaint ../libweston/compositor.c:2798
#5 0x7f3e352c69c2 in output_repaint_timer_handler ../libweston/compositor.c:2865
#6 0x7f3e352353da in wl_event_source_timer_dispatch src/event-loop.c:236
#7 0x7f3e35236643 in wl_event_loop_dispatch src/event-loop.c:641
#8 0x7f3e35233544 in wl_display_run src/wayland-server.c:1293
#9 0x7f3e35876297 in wet_main ../compositor/main.c:3361
#10 0x40113a in main ../compositor/executable.c:33
#11 0x7f3e356c0b8d in __libc_start_main (/nix/store/pnd2kl27sag76h23wa5kl95a76n3k9i3-glibc-2.27/lib/libc.so.6+0x22b8d)
#12 0x401089 in _start (/mnt/Lokale_Daten/ahe/meetwise/mdi2/git_nix/playground/bin/weston+0x401089)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: FPE ../libweston/renderer-gl/gl-renderer.c:1625 in gl_renderer_flush_damage
==21652==ABORTING
terminate called after throwing an instance of 'std::system_error'
what(): wl_display_read_events failed: Broken pipe
gs->num_textures
seems to have incorrect (too large) value.
It occurs when
- A planar YUV444 buffer was attached to a surface
- Subsequently, a packed RGB buffer is attached to the same surface