From 1ff725b6211940b6ba78ba16c8740a2a18659de2 Mon Sep 17 00:00:00 2001 From: TazyFoundSoup Date: Fri, 19 Dec 2025 14:15:54 +1100 Subject: refactor(png): ff_open_png returns ff_result --- include/tinyff/image/png.h | 2 +- include/tinyff/result.h | 3 +++ src/format/image/png.c | 6 +++--- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/include/tinyff/image/png.h b/include/tinyff/image/png.h index caed675..de21b07 100644 --- a/include/tinyff/image/png.h +++ b/include/tinyff/image/png.h @@ -24,6 +24,6 @@ typedef struct { } ff_png_ctx; ff_result ff_png_isvalid(FILE *file); -ff_png_ctx *ff_open_png(const char *filepath); +ff_result ff_open_png(const char *filepath, ff_png_ctx **out_ctx); #endif diff --git a/include/tinyff/result.h b/include/tinyff/result.h index a837c66..27b1ce4 100644 --- a/include/tinyff/result.h +++ b/include/tinyff/result.h @@ -3,8 +3,11 @@ typedef enum { FF_RESULT_OK = 0, + + // File FF_RESULT_ERROR_INVALID_FILE_SIGNITURE, FF_RESULT_ERROR_INVALID_FILE, + FF_RESULT_ERROR_READ_FILE_FAILURE, // More will be created when more errors occur } ff_result; diff --git a/src/format/image/png.c b/src/format/image/png.c index b29e271..6adfe86 100644 --- a/src/format/image/png.c +++ b/src/format/image/png.c @@ -19,18 +19,18 @@ ff_result ff_png_isvalid(FILE *file) return FF_RESULT_OK; } -ff_png_ctx *ff_open_png(const char *filepath) { +ff_result ff_open_png(const char *filepath, ff_png_ctx **out_ctx) { // Validate ff_png_ctx ctx; ctx.raw = fopen(filepath, "rb"); if (!ctx.raw) { - return NULL; + return FF_RESULT_ERROR_READ_FILE_FAILURE; } if (ff_png_isvalid(ctx.raw) != FF_RESULT_OK) { - return NULL; + return ff_png_isvalid(ctx.raw); } // TODO: Parse -- cgit v1.2.3