diff options
| author | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2026-09-03 07:30:23 +0200 |
|---|---|---|
| committer | Jean-Philippe Bruyère <jp_bruyere@hotmail.com> | 2026-09-04 11:06:23 +0200 |
| commit | 0c8efc4b204508571761a86853399ec40c4ce136 (patch) | |
| tree | cfe63ecf1e59465841524e88b8aa20906b20b185 | |
| parent | f41b2d5e196713438f530b1a66d49920f199ed1d (diff) | |
vkvg_pattern_create_solid, vkvg_status_no_memory on pattern memory alloc failure
| -rw-r--r-- | src/vkvg_pattern.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/vkvg_pattern.c b/src/vkvg_pattern.c index 8843679..9bc21b9 100644 --- a/src/vkvg_pattern.c +++ b/src/vkvg_pattern.c @@ -25,6 +25,17 @@ #include "vkvg_device_internal.h" #include "vkvg_pattern.h" +VkvgPattern vkvg_pattern_create_solid(float r, float g, float b, float a) { + VkvgPattern pat = (vkvg_pattern_t*)calloc(1, sizeof(vkvg_pattern_t)); + if (!pat) { + LOG(VKVG_LOG_ERR, "CREATE Pattern failed, no memory\n"); + return (VkvgPattern)&_vkvg_status_no_memory; + } + pat->type = VKVG_PATTERN_TYPE_SOLID; + pat->extend = VKVG_EXTEND_NONE; + + return pat; +} VkvgPattern vkvg_pattern_create_for_surface(VkvgSurface surf) { if (!surf) { LOG(VKVG_LOG_ERR, "CREATE Pattern failed, invalid surface\n"); @@ -33,7 +44,7 @@ VkvgPattern vkvg_pattern_create_for_surface(VkvgSurface surf) { VkvgPattern pat = (vkvg_pattern_t*)calloc(1, sizeof(vkvg_pattern_t)); if (!pat) { LOG(VKVG_LOG_ERR, "CREATE Pattern failed, no memory\n"); - return (VkvgPattern)&_vkvg_status_null_pointer; + return (VkvgPattern)&_vkvg_status_no_memory; } pat->type = VKVG_PATTERN_TYPE_SURFACE; @@ -76,7 +87,7 @@ VkvgPattern vkvg_pattern_create_linear(float x0, float y0, float x1, float y1) { VkvgPattern pat = (vkvg_pattern_t*)calloc(1, sizeof(vkvg_pattern_t)); if (!pat) { LOG(VKVG_LOG_ERR, "CREATE Pattern failed, no memory\n"); - return (VkvgPattern)&_vkvg_status_null_pointer; + return (VkvgPattern)&_vkvg_status_no_memory; } pat->type = VKVG_PATTERN_TYPE_LINEAR; pat->extend = VKVG_EXTEND_NONE; @@ -121,7 +132,7 @@ VkvgPattern vkvg_pattern_create_radial(float cx0, float cy0, float radius0, floa VkvgPattern pat = (vkvg_pattern_t*)calloc(1, sizeof(vkvg_pattern_t)); if (!pat) { LOG(VKVG_LOG_ERR, "CREATE Pattern failed, no memory\n"); - return (VkvgPattern)&_vkvg_status_null_pointer; + return (VkvgPattern)&_vkvg_status_no_memory; } pat->type = VKVG_PATTERN_TYPE_RADIAL; pat->extend = VKVG_EXTEND_NONE; @@ -248,7 +259,7 @@ void vkvg_pattern_destroy(VkvgPattern pat) { if (pat->type == VKVG_PATTERN_TYPE_SURFACE) { VkvgSurface surf = (VkvgSurface)pat->data; vkvg_surface_destroy(surf); - } else + } else if (pat->type != VKVG_PATTERN_TYPE_SOLID) free(pat->data); free(pat); |