[rdtk] assert arguments

This commit is contained in:
Armin Novak 2023-07-31 14:48:53 +02:00 committed by akallabeth
parent f08ed58367
commit 1f77d0b356
6 changed files with 67 additions and 31 deletions

View File

@ -16,6 +16,8 @@
* limitations under the License. * limitations under the License.
*/ */
#include <winpr/assert.h>
#include <rdtk/config.h> #include <rdtk/config.h>
#include "rdtk_font.h" #include "rdtk_font.h"
@ -31,14 +33,14 @@ int rdtk_button_draw(rdtkSurface* surface, uint16_t nXDst, uint16_t nYDst, uint1
uint16_t textHeight; uint16_t textHeight;
uint16_t fillWidth; uint16_t fillWidth;
uint16_t fillHeight; uint16_t fillHeight;
rdtkFont* font;
rdtkEngine* engine;
rdtkNinePatch* ninePatch;
engine = surface->engine; WINPR_ASSERT(surface);
font = engine->font; WINPR_ASSERT(button);
button = engine->button; WINPR_ASSERT(text);
ninePatch = button->ninePatch;
rdtkEngine* engine = surface->engine;
rdtkFont* font = engine->font;
rdtkNinePatch* ninePatch = button->ninePatch;
rdtk_font_text_draw_size(font, &textWidth, &textHeight, text); rdtk_font_text_draw_size(font, &textWidth, &textHeight, text);
@ -70,9 +72,10 @@ int rdtk_button_draw(rdtkSurface* surface, uint16_t nXDst, uint16_t nYDst, uint1
rdtkButton* rdtk_button_new(rdtkEngine* engine, rdtkNinePatch* ninePatch) rdtkButton* rdtk_button_new(rdtkEngine* engine, rdtkNinePatch* ninePatch)
{ {
rdtkButton* button; WINPR_ASSERT(engine);
WINPR_ASSERT(ninePatch);
button = (rdtkButton*)calloc(1, sizeof(rdtkButton)); rdtkButton* button = (rdtkButton*)calloc(1, sizeof(rdtkButton));
if (!button) if (!button)
return NULL; return NULL;
@ -90,6 +93,8 @@ void rdtk_button_free(rdtkButton* button)
int rdtk_button_engine_init(rdtkEngine* engine) int rdtk_button_engine_init(rdtkEngine* engine)
{ {
WINPR_ASSERT(engine);
if (!engine->button) if (!engine->button)
{ {
engine->button = rdtk_button_new(engine, engine->button9patch); engine->button = rdtk_button_new(engine, engine->button9patch);
@ -102,6 +107,8 @@ int rdtk_button_engine_init(rdtkEngine* engine)
int rdtk_button_engine_uninit(rdtkEngine* engine) int rdtk_button_engine_uninit(rdtkEngine* engine)
{ {
WINPR_ASSERT(engine);
if (engine->button) if (engine->button)
{ {
rdtk_button_free(engine->button); rdtk_button_free(engine->button);

View File

@ -16,6 +16,8 @@
* limitations under the License. * limitations under the License.
*/ */
#include <winpr/assert.h>
#include <rdtk/config.h> #include <rdtk/config.h>
#include "rdtk_font.h" #include "rdtk_font.h"
@ -27,9 +29,7 @@
rdtkEngine* rdtk_engine_new(void) rdtkEngine* rdtk_engine_new(void)
{ {
rdtkEngine* engine; rdtkEngine* engine = (rdtkEngine*)calloc(1, sizeof(rdtkEngine));
engine = (rdtkEngine*)calloc(1, sizeof(rdtkEngine));
if (!engine) if (!engine)
return NULL; return NULL;

View File

@ -16,6 +16,8 @@
* limitations under the License. * limitations under the License.
*/ */
#include <winpr/assert.h>
#include <rdtk/config.h> #include <rdtk/config.h>
#include "rdtk_font.h" #include "rdtk_font.h"
@ -30,11 +32,11 @@ int rdtk_label_draw(rdtkSurface* surface, uint16_t nXDst, uint16_t nYDst, uint16
uint16_t offsetY; uint16_t offsetY;
uint16_t textWidth; uint16_t textWidth;
uint16_t textHeight; uint16_t textHeight;
rdtkFont* font;
rdtkEngine* engine;
engine = surface->engine; WINPR_ASSERT(surface);
font = engine->font;
rdtkEngine* engine = surface->engine;
rdtkFont* font = engine->font;
rdtk_font_text_draw_size(font, &textWidth, &textHeight, text); rdtk_font_text_draw_size(font, &textWidth, &textHeight, text);
@ -57,9 +59,8 @@ int rdtk_label_draw(rdtkSurface* surface, uint16_t nXDst, uint16_t nYDst, uint16
rdtkLabel* rdtk_label_new(rdtkEngine* engine) rdtkLabel* rdtk_label_new(rdtkEngine* engine)
{ {
rdtkLabel* label; WINPR_ASSERT(engine);
rdtkLabel* label = (rdtkLabel*)calloc(1, sizeof(rdtkLabel));
label = (rdtkLabel*)calloc(1, sizeof(rdtkLabel));
if (!label) if (!label)
return NULL; return NULL;
@ -76,6 +77,7 @@ void rdtk_label_free(rdtkLabel* label)
int rdtk_label_engine_init(rdtkEngine* engine) int rdtk_label_engine_init(rdtkEngine* engine)
{ {
WINPR_ASSERT(engine);
if (!engine->label) if (!engine->label)
{ {
engine->label = rdtk_label_new(engine); engine->label = rdtk_label_new(engine);
@ -86,6 +88,7 @@ int rdtk_label_engine_init(rdtkEngine* engine)
int rdtk_label_engine_uninit(rdtkEngine* engine) int rdtk_label_engine_uninit(rdtkEngine* engine)
{ {
WINPR_ASSERT(engine);
if (engine->label) if (engine->label)
{ {
rdtk_label_free(engine->label); rdtk_label_free(engine->label);

View File

@ -17,6 +17,7 @@
*/ */
#include <winpr/config.h> #include <winpr/config.h>
#include <winpr/assert.h>
#include <rdtk/config.h> #include <rdtk/config.h>
@ -34,20 +35,20 @@ static int rdtk_image_copy_alpha_blend(uint8_t* pDstData, int nDstStep, int nXDs
int nWidth, int nHeight, uint8_t* pSrcData, int nSrcStep, int nWidth, int nHeight, uint8_t* pSrcData, int nSrcStep,
int nXSrc, int nYSrc) int nXSrc, int nYSrc)
{ {
int x, y; WINPR_ASSERT(pDstData);
uint8_t A, R, G, B; WINPR_ASSERT(pSrcData);
for (y = 0; y < nHeight; y++) for (int y = 0; y < nHeight; y++)
{ {
const uint8_t* pSrcPixel = &pSrcData[((nYSrc + y) * nSrcStep) + (nXSrc * 4)]; const uint8_t* pSrcPixel = &pSrcData[((nYSrc + y) * nSrcStep) + (nXSrc * 4)];
uint8_t* pDstPixel = &pDstData[((nYDst + y) * nDstStep) + (nXDst * 4)]; uint8_t* pDstPixel = &pDstData[((nYDst + y) * nDstStep) + (nXDst * 4)];
for (x = 0; x < nWidth; x++) for (int x = 0; x < nWidth; x++)
{ {
B = pSrcPixel[0]; uint8_t B = pSrcPixel[0];
G = pSrcPixel[1]; uint8_t G = pSrcPixel[1];
R = pSrcPixel[2]; uint8_t R = pSrcPixel[2];
A = pSrcPixel[3]; uint8_t A = pSrcPixel[3];
pSrcPixel += 4; pSrcPixel += 4;
if (A == 255) if (A == 255)
@ -88,6 +89,9 @@ int rdtk_nine_patch_draw(rdtkSurface* surface, int nXDst, int nYDst, int nWidth,
uint8_t* pDstData; uint8_t* pDstData;
int scaleWidth; int scaleWidth;
WINPR_ASSERT(surface);
WINPR_ASSERT(ninePatch);
if (nWidth < ninePatch->width) if (nWidth < ninePatch->width)
nWidth = ninePatch->width; nWidth = ninePatch->width;
@ -217,6 +221,10 @@ int rdtk_nine_patch_set_image(rdtkNinePatch* ninePatch, wImage* image)
int scanline; int scanline;
uint32_t* pixel; uint32_t* pixel;
int width, height; int width, height;
WINPR_ASSERT(ninePatch);
WINPR_ASSERT(image);
ninePatch->image = image; ninePatch->image = image;
width = image->width; width = image->width;
height = image->height; height = image->height;
@ -351,8 +359,8 @@ int rdtk_nine_patch_set_image(rdtkNinePatch* ninePatch, wImage* image)
rdtkNinePatch* rdtk_nine_patch_new(rdtkEngine* engine) rdtkNinePatch* rdtk_nine_patch_new(rdtkEngine* engine)
{ {
rdtkNinePatch* ninePatch; WINPR_ASSERT(engine);
ninePatch = (rdtkNinePatch*)calloc(1, sizeof(rdtkNinePatch)); rdtkNinePatch* ninePatch = (rdtkNinePatch*)calloc(1, sizeof(rdtkNinePatch));
if (!ninePatch) if (!ninePatch)
return NULL; return NULL;
@ -376,6 +384,8 @@ int rdtk_nine_patch_engine_init(rdtkEngine* engine)
wImage* image = NULL; wImage* image = NULL;
rdtkNinePatch* ninePatch; rdtkNinePatch* ninePatch;
WINPR_ASSERT(engine);
if (!engine->button9patch) if (!engine->button9patch)
{ {
SSIZE_T size; SSIZE_T size;
@ -438,6 +448,7 @@ int rdtk_nine_patch_engine_init(rdtkEngine* engine)
int rdtk_nine_patch_engine_uninit(rdtkEngine* engine) int rdtk_nine_patch_engine_uninit(rdtkEngine* engine)
{ {
WINPR_ASSERT(engine);
if (engine->button9patch) if (engine->button9patch)
{ {
rdtk_nine_patch_free(engine->button9patch); rdtk_nine_patch_free(engine->button9patch);

View File

@ -16,6 +16,7 @@
* limitations under the License. * limitations under the License.
*/ */
#include <winpr/assert.h>
#include <rdtk/config.h> #include <rdtk/config.h>
#include "rdtk_surface.h" #include "rdtk_surface.h"
@ -25,6 +26,8 @@
int rdtk_surface_fill(rdtkSurface* surface, uint16_t x, uint16_t y, uint16_t width, uint16_t height, int rdtk_surface_fill(rdtkSurface* surface, uint16_t x, uint16_t y, uint16_t width, uint16_t height,
uint32_t color) uint32_t color)
{ {
WINPR_ASSERT(surface);
for (uint32_t i = y; i < y * 1ul + height; i++) for (uint32_t i = y; i < y * 1ul + height; i++)
{ {
uint8_t* line = &surface->data[i * surface->scanline]; uint8_t* line = &surface->data[i * surface->scanline];
@ -41,6 +44,8 @@ int rdtk_surface_fill(rdtkSurface* surface, uint16_t x, uint16_t y, uint16_t wid
rdtkSurface* rdtk_surface_new(rdtkEngine* engine, uint8_t* data, uint16_t width, uint16_t height, rdtkSurface* rdtk_surface_new(rdtkEngine* engine, uint8_t* data, uint16_t width, uint16_t height,
uint32_t scanline) uint32_t scanline)
{ {
WINPR_ASSERT(engine);
rdtkSurface* surface = (rdtkSurface*)calloc(1, sizeof(rdtkSurface)); rdtkSurface* surface = (rdtkSurface*)calloc(1, sizeof(rdtkSurface));
if (!surface) if (!surface)

View File

@ -16,6 +16,8 @@
* limitations under the License. * limitations under the License.
*/ */
#include <winpr/assert.h>
#include <rdtk/config.h> #include <rdtk/config.h>
#include "rdtk_font.h" #include "rdtk_font.h"
@ -35,6 +37,10 @@ int rdtk_text_field_draw(rdtkSurface* surface, uint16_t nXDst, uint16_t nYDst, u
rdtkEngine* engine; rdtkEngine* engine;
rdtkNinePatch* ninePatch; rdtkNinePatch* ninePatch;
WINPR_ASSERT(surface);
WINPR_ASSERT(textField);
WINPR_ASSERT(text);
engine = surface->engine; engine = surface->engine;
font = engine->font; font = engine->font;
textField = surface->engine->textField; textField = surface->engine->textField;
@ -70,9 +76,10 @@ int rdtk_text_field_draw(rdtkSurface* surface, uint16_t nXDst, uint16_t nYDst, u
rdtkTextField* rdtk_text_field_new(rdtkEngine* engine, rdtkNinePatch* ninePatch) rdtkTextField* rdtk_text_field_new(rdtkEngine* engine, rdtkNinePatch* ninePatch)
{ {
rdtkTextField* textField; WINPR_ASSERT(engine);
WINPR_ASSERT(ninePatch);
textField = (rdtkTextField*)calloc(1, sizeof(rdtkTextField)); rdtkTextField* textField = (rdtkTextField*)calloc(1, sizeof(rdtkTextField));
if (!textField) if (!textField)
return NULL; return NULL;
@ -90,6 +97,8 @@ void rdtk_text_field_free(rdtkTextField* textField)
int rdtk_text_field_engine_init(rdtkEngine* engine) int rdtk_text_field_engine_init(rdtkEngine* engine)
{ {
WINPR_ASSERT(engine);
if (!engine->textField) if (!engine->textField)
{ {
engine->textField = rdtk_text_field_new(engine, engine->textField9patch); engine->textField = rdtk_text_field_new(engine, engine->textField9patch);
@ -102,6 +111,7 @@ int rdtk_text_field_engine_init(rdtkEngine* engine)
int rdtk_text_field_engine_uninit(rdtkEngine* engine) int rdtk_text_field_engine_uninit(rdtkEngine* engine)
{ {
WINPR_ASSERT(engine);
if (engine->textField) if (engine->textField)
{ {
rdtk_text_field_free(engine->textField); rdtk_text_field_free(engine->textField);