Clean up
Use gchar when memory is allocated through GLib.
This commit is contained in:
parent
024b5117b4
commit
4ca8825e02
@ -90,7 +90,7 @@ struct _FivBrowser {
|
||||
static cairo_user_data_key_t fiv_browser_key_mtime_msec;
|
||||
|
||||
struct entry {
|
||||
char *uri; ///< GIO URI
|
||||
gchar *uri; ///< GIO URI
|
||||
gint64 mtime_msec; ///< Modification time in milliseconds
|
||||
cairo_surface_t *thumbnail; ///< Prescaled thumbnail
|
||||
GIcon *icon; ///< If no thumbnail, use this icon
|
||||
@ -706,7 +706,7 @@ thumbnailers_start(FivBrowser *self)
|
||||
typedef struct _OpenContext {
|
||||
GWeakRef widget;
|
||||
GFile *file;
|
||||
char *content_type;
|
||||
gchar *content_type;
|
||||
GAppInfo *app_info;
|
||||
} OpenContext;
|
||||
|
||||
|
34
fiv-io.c
34
fiv-io.c
@ -115,7 +115,7 @@ const char *fiv_io_supported_media_types[] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
char **
|
||||
gchar **
|
||||
fiv_io_all_supported_media_types(void)
|
||||
{
|
||||
GPtrArray *types = g_ptr_array_new();
|
||||
@ -957,7 +957,7 @@ fail:
|
||||
|
||||
static cairo_surface_t *
|
||||
open_wuffs_using(wuffs_base__image_decoder *(*allocate)(),
|
||||
const gchar *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
const char *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
{
|
||||
wuffs_base__image_decoder *dec = allocate();
|
||||
if (!dec) {
|
||||
@ -1135,7 +1135,7 @@ fail:
|
||||
// --- JPEG --------------------------------------------------------------------
|
||||
|
||||
static GBytes *
|
||||
parse_jpeg_metadata(cairo_surface_t *surface, const gchar *data, gsize len)
|
||||
parse_jpeg_metadata(cairo_surface_t *surface, const char *data, gsize len)
|
||||
{
|
||||
// Because the JPEG file format is simple, just do it manually.
|
||||
// See: https://www.w3.org/Graphics/JPEG/itu-t81.pdf
|
||||
@ -1228,7 +1228,7 @@ parse_jpeg_metadata(cairo_surface_t *surface, const gchar *data, gsize len)
|
||||
|
||||
static void
|
||||
load_jpeg_finalize(cairo_surface_t *surface, bool cmyk,
|
||||
FivIoProfile destination, const gchar *data, size_t len)
|
||||
FivIoProfile destination, const char *data, size_t len)
|
||||
{
|
||||
GBytes *icc_profile = parse_jpeg_metadata(surface, data, len);
|
||||
FivIoProfile source = NULL;
|
||||
@ -1250,7 +1250,7 @@ load_jpeg_finalize(cairo_surface_t *surface, bool cmyk,
|
||||
|
||||
static cairo_surface_t *
|
||||
open_libjpeg_turbo(
|
||||
const gchar *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
const char *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
{
|
||||
// Note that there doesn't seem to be much of a point in using this
|
||||
// simplified API anymore, because JPEG-QS needs the original libjpeg API.
|
||||
@ -1351,7 +1351,7 @@ libjpeg_error_exit(j_common_ptr cinfo)
|
||||
|
||||
static cairo_surface_t *
|
||||
open_libjpeg_enhanced(
|
||||
const gchar *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
const char *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
{
|
||||
cairo_surface_t *volatile surface = NULL;
|
||||
|
||||
@ -1613,7 +1613,7 @@ fail:
|
||||
|
||||
static cairo_surface_t *
|
||||
open_libwebp(
|
||||
const gchar *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
const char *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
{
|
||||
// It is wholly zero-initialized by libwebp.
|
||||
WebPDecoderConfig config = {};
|
||||
@ -1698,7 +1698,7 @@ fail:
|
||||
#ifdef HAVE_LIBRAW // ---------------------------------------------------------
|
||||
|
||||
static cairo_surface_t *
|
||||
open_libraw(const gchar *data, gsize len, GError **error)
|
||||
open_libraw(const char *data, gsize len, GError **error)
|
||||
{
|
||||
// https://github.com/LibRaw/LibRaw/issues/418
|
||||
libraw_data_t *iprc = libraw_init(
|
||||
@ -1884,7 +1884,7 @@ load_resvg_error(int err)
|
||||
|
||||
static cairo_surface_t *
|
||||
open_resvg(
|
||||
const gchar *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
const char *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
{
|
||||
GFile *file = g_file_new_for_uri(ctx->uri);
|
||||
GFile *base_file = g_file_get_parent(file);
|
||||
@ -1974,7 +1974,7 @@ load_librsvg_render(FivIoRenderClosure *closure, double scale)
|
||||
|
||||
static cairo_surface_t *
|
||||
open_librsvg(
|
||||
const gchar *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
const char *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
{
|
||||
GFile *base_file = g_file_new_for_uri(ctx->uri);
|
||||
GInputStream *is = g_memory_input_stream_new_from_data(data, len, NULL);
|
||||
@ -2108,7 +2108,7 @@ static const XcursorFile fiv_io_xcursor_adaptor = {
|
||||
};
|
||||
|
||||
static cairo_surface_t *
|
||||
open_xcursor(const gchar *data, gsize len, GError **error)
|
||||
open_xcursor(const char *data, gsize len, GError **error)
|
||||
{
|
||||
if (len > G_MAXLONG) {
|
||||
set_error(error, "size overflow");
|
||||
@ -2318,7 +2318,7 @@ load_libheif_aux_images(const FivIoOpenContext *ioctx,
|
||||
|
||||
static cairo_surface_t *
|
||||
open_libheif(
|
||||
const gchar *data, gsize len, const FivIoOpenContext *ioctx, GError **error)
|
||||
const char *data, gsize len, const FivIoOpenContext *ioctx, GError **error)
|
||||
{
|
||||
// libheif will throw C++ exceptions on allocation failures.
|
||||
// The library is generally awful through and through.
|
||||
@ -2547,7 +2547,7 @@ fail:
|
||||
|
||||
static cairo_surface_t *
|
||||
open_libtiff(
|
||||
const gchar *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
const char *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
{
|
||||
// Both kinds of handlers are called, redirect everything.
|
||||
TIFFErrorHandler eh = TIFFSetErrorHandler(NULL);
|
||||
@ -2651,7 +2651,7 @@ load_gdkpixbuf_argb32_unpremultiplied(GdkPixbuf *pixbuf)
|
||||
|
||||
static cairo_surface_t *
|
||||
open_gdkpixbuf(
|
||||
const gchar *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
const char *data, gsize len, const FivIoOpenContext *ctx, GError **error)
|
||||
{
|
||||
// gdk-pixbuf controls the playback itself, there is no reliable method of
|
||||
// extracting individual frames (due to loops).
|
||||
@ -3002,7 +3002,7 @@ static guint model_signals[LAST_SIGNAL];
|
||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
static gboolean
|
||||
model_supports(FivIoModel *self, const gchar *filename)
|
||||
model_supports(FivIoModel *self, const char *filename)
|
||||
{
|
||||
gchar *utf8 = g_filename_to_utf8(filename, -1, NULL, NULL, NULL);
|
||||
if (!utf8)
|
||||
@ -3410,7 +3410,7 @@ set_metadata(WebPMux *mux, const char *fourcc, GBytes *data)
|
||||
|
||||
gboolean
|
||||
fiv_io_save(cairo_surface_t *page, cairo_surface_t *frame, FivIoProfile target,
|
||||
const gchar *path, GError **error)
|
||||
const char *path, GError **error)
|
||||
{
|
||||
g_return_val_if_fail(page != NULL, FALSE);
|
||||
g_return_val_if_fail(path != NULL, FALSE);
|
||||
@ -3574,7 +3574,7 @@ fiv_io_exif_orientation(const guint8 *tiff, gsize len)
|
||||
}
|
||||
|
||||
gboolean
|
||||
fiv_io_save_metadata(cairo_surface_t *page, const gchar *path, GError **error)
|
||||
fiv_io_save_metadata(cairo_surface_t *page, const char *path, GError **error)
|
||||
{
|
||||
g_return_val_if_fail(page != NULL, FALSE);
|
||||
|
||||
|
10
fiv-io.h
10
fiv-io.h
@ -39,7 +39,7 @@ void fiv_io_profile_free(FivIoProfile self);
|
||||
|
||||
extern const char *fiv_io_supported_media_types[];
|
||||
|
||||
char **fiv_io_all_supported_media_types(void);
|
||||
gchar **fiv_io_all_supported_media_types(void);
|
||||
|
||||
// Userdata are typically attached to all Cairo surfaces in an animation.
|
||||
|
||||
@ -127,8 +127,8 @@ gboolean fiv_io_model_open(FivIoModel *self, GFile *directory, GError **error);
|
||||
GFile *fiv_io_model_get_location(FivIoModel *self);
|
||||
|
||||
typedef struct {
|
||||
char *uri; ///< GIO URI
|
||||
char *collate_key; ///< Collate key for the filename
|
||||
gchar *uri; ///< GIO URI
|
||||
gchar *collate_key; ///< Collate key for the filename
|
||||
gint64 mtime_msec; ///< Modification time in milliseconds
|
||||
} FivIoModelEntry;
|
||||
|
||||
@ -145,7 +145,7 @@ unsigned char *fiv_io_encode_webp(
|
||||
/// Saves the page as a lossless WebP still picture or animation.
|
||||
/// If no exact frame is specified, this potentially creates an animation.
|
||||
gboolean fiv_io_save(cairo_surface_t *page, cairo_surface_t *frame,
|
||||
FivIoProfile target, const gchar *path, GError **error);
|
||||
FivIoProfile target, const char *path, GError **error);
|
||||
|
||||
// --- Metadata ----------------------------------------------------------------
|
||||
|
||||
@ -173,4 +173,4 @@ FivIoOrientation fiv_io_exif_orientation(const guint8 *exif, gsize len);
|
||||
|
||||
/// Save metadata attached by this module in Exiv2 format.
|
||||
gboolean fiv_io_save_metadata(
|
||||
cairo_surface_t *page, const gchar *path, GError **error);
|
||||
cairo_surface_t *page, const char *path, GError **error);
|
||||
|
@ -22,10 +22,10 @@
|
||||
|
||||
// --- Utilities ---------------------------------------------------------------
|
||||
|
||||
static void exit_fatal(const gchar *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
static void exit_fatal(const char *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
|
||||
static void
|
||||
exit_fatal(const gchar *format, ...)
|
||||
exit_fatal(const char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
@ -250,7 +250,7 @@ on_motion(G_GNUC_UNUSED GtkWidget *self, GdkEventMotion *event,
|
||||
}
|
||||
|
||||
static gboolean
|
||||
open_jpeg(const gchar *data, gsize len, GError **error)
|
||||
open_jpeg(const char *data, gsize len, GError **error)
|
||||
{
|
||||
tjhandle h = tjInitDecompress();
|
||||
if (!h) {
|
||||
|
@ -306,9 +306,9 @@ complete_path(GFile *location, GtkListStore *model)
|
||||
g_file_info_get_is_hidden(info))
|
||||
continue;
|
||||
|
||||
char *parse_name = g_file_get_parse_name(child);
|
||||
gchar *parse_name = g_file_get_parse_name(child);
|
||||
if (!g_str_has_suffix(parse_name, G_DIR_SEPARATOR_S)) {
|
||||
char *save = parse_name;
|
||||
gchar *save = parse_name;
|
||||
parse_name = g_strdup_printf("%s%c", parse_name, G_DIR_SEPARATOR);
|
||||
g_free(save);
|
||||
}
|
||||
|
@ -378,7 +378,7 @@ fiv_thumbnail_produce(GFile *target, FivThumbnailSize max_size,
|
||||
}
|
||||
|
||||
static bool
|
||||
check_wide_thumbnail_texts(GBytes *thum, const gchar *target, time_t mtime,
|
||||
check_wide_thumbnail_texts(GBytes *thum, const char *target, time_t mtime,
|
||||
bool *sRGB)
|
||||
{
|
||||
gsize len = 0;
|
||||
@ -409,7 +409,7 @@ check_wide_thumbnail_texts(GBytes *thum, const gchar *target, time_t mtime,
|
||||
|
||||
static cairo_surface_t *
|
||||
read_wide_thumbnail(
|
||||
const gchar *path, const gchar *uri, time_t mtime, GError **error)
|
||||
const char *path, const char *uri, time_t mtime, GError **error)
|
||||
{
|
||||
gchar *thumbnail_uri = g_filename_to_uri(path, NULL, error);
|
||||
if (!thumbnail_uri)
|
||||
@ -447,7 +447,7 @@ read_wide_thumbnail(
|
||||
|
||||
static cairo_surface_t *
|
||||
read_png_thumbnail(
|
||||
const gchar *path, const gchar *uri, time_t mtime, GError **error)
|
||||
const char *path, const char *uri, time_t mtime, GError **error)
|
||||
{
|
||||
cairo_surface_t *surface = fiv_io_open_png_thumbnail(path, error);
|
||||
if (!surface)
|
||||
|
@ -1161,7 +1161,7 @@ fiv_view_init(FivView *self)
|
||||
// --- Public interface --------------------------------------------------------
|
||||
|
||||
static cairo_surface_t *
|
||||
open_without_swapping_in(FivView *self, const gchar *uri)
|
||||
open_without_swapping_in(FivView *self, const char *uri)
|
||||
{
|
||||
FivIoOpenContext ctx = {
|
||||
.uri = uri,
|
||||
@ -1190,7 +1190,7 @@ open_without_swapping_in(FivView *self, const gchar *uri)
|
||||
|
||||
// TODO(p): Progressive picture loading, or at least async/cancellable.
|
||||
gboolean
|
||||
fiv_view_set_uri(FivView *self, const gchar *uri)
|
||||
fiv_view_set_uri(FivView *self, const char *uri)
|
||||
{
|
||||
// This is extremely expensive, and only works sometimes.
|
||||
g_clear_pointer(&self->enhance_swap, cairo_surface_destroy);
|
||||
|
@ -24,7 +24,7 @@ G_DECLARE_FINAL_TYPE(FivView, fiv_view, FIV, VIEW, GtkWidget)
|
||||
|
||||
/// Try to open the given file, synchronously, to be displayed by the widget.
|
||||
/// The current image is cleared on failure.
|
||||
gboolean fiv_view_set_uri(FivView *self, const gchar *uri);
|
||||
gboolean fiv_view_set_uri(FivView *self, const char *uri);
|
||||
|
||||
// And this is how you avoid glib-mkenums.
|
||||
typedef enum _FivViewCommand {
|
||||
|
16
fiv.c
16
fiv.c
@ -35,10 +35,10 @@
|
||||
|
||||
// --- Utilities ---------------------------------------------------------------
|
||||
|
||||
static void exit_fatal(const gchar *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
static void exit_fatal(const char *format, ...) G_GNUC_PRINTF(1, 2);
|
||||
|
||||
static void
|
||||
exit_fatal(const gchar *format, ...)
|
||||
exit_fatal(const char *format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
@ -618,7 +618,7 @@ update_files_index(void)
|
||||
}
|
||||
|
||||
static void
|
||||
load_directory_without_reload(const gchar *uri)
|
||||
load_directory_without_reload(const char *uri)
|
||||
{
|
||||
gchar *uri_duplicated = g_strdup(uri);
|
||||
if (g.directory_back && !strcmp(uri, g.directory_back->data)) {
|
||||
@ -657,7 +657,7 @@ load_directory_without_reload(const gchar *uri)
|
||||
}
|
||||
|
||||
static void
|
||||
load_directory_without_switching(const gchar *uri)
|
||||
load_directory_without_switching(const char *uri)
|
||||
{
|
||||
if (uri) {
|
||||
load_directory_without_reload(uri);
|
||||
@ -682,7 +682,7 @@ load_directory_without_switching(const gchar *uri)
|
||||
}
|
||||
|
||||
static void
|
||||
load_directory(const gchar *uri)
|
||||
load_directory(const char *uri)
|
||||
{
|
||||
load_directory_without_switching(uri);
|
||||
|
||||
@ -761,7 +761,7 @@ on_notify_view_messages(FivView *view, G_GNUC_UNUSED gpointer user_data)
|
||||
}
|
||||
|
||||
static void
|
||||
open(const gchar *uri)
|
||||
open(const char *uri)
|
||||
{
|
||||
GFile *file = g_file_new_for_uri(uri);
|
||||
if (fiv_view_set_uri(FIV_VIEW(g.view), uri))
|
||||
@ -1322,7 +1322,7 @@ on_button_press_browser_paned(
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
make_toolbar_button(const gchar *symbolic, const gchar *tooltip)
|
||||
make_toolbar_button(const char *symbolic, const char *tooltip)
|
||||
{
|
||||
GtkWidget *button = gtk_button_new();
|
||||
gtk_button_set_image(GTK_BUTTON(button),
|
||||
@ -1335,7 +1335,7 @@ make_toolbar_button(const gchar *symbolic, const gchar *tooltip)
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
make_toolbar_toggle(const gchar *symbolic, const gchar *tooltip)
|
||||
make_toolbar_toggle(const char *symbolic, const char *tooltip)
|
||||
{
|
||||
GtkWidget *button = gtk_toggle_button_new();
|
||||
gtk_button_set_image(GTK_BUTTON(button),
|
||||
|
10
xdg.c
10
xdg.c
@ -21,7 +21,7 @@
|
||||
/// defining is-a relations, and is traversed recursively.
|
||||
static void
|
||||
add_applying_transitive_closure(
|
||||
const gchar *element, GHashTable *relation, GHashTable *output)
|
||||
const char *element, GHashTable *relation, GHashTable *output)
|
||||
{
|
||||
// Stop condition.
|
||||
if (!g_hash_table_add(output, g_strdup(element)))
|
||||
@ -61,7 +61,7 @@ get_xdg_data_dirs(void)
|
||||
GPtrArray *output = g_ptr_array_new_with_free_func(g_free);
|
||||
g_ptr_array_add(output, get_xdg_home_dir("XDG_DATA_HOME", ".local/share"));
|
||||
|
||||
const gchar *xdg_data_dirs;
|
||||
const char *xdg_data_dirs;
|
||||
if (!(xdg_data_dirs = getenv("XDG_DATA_DIRS")) || !*xdg_data_dirs)
|
||||
xdg_data_dirs = "/usr/local/share/:/usr/share/";
|
||||
|
||||
@ -82,7 +82,7 @@ get_xdg_data_dirs(void)
|
||||
// Derived from shared-mime-info-spec 0.21.
|
||||
|
||||
static void
|
||||
read_mime_subclasses(const gchar *path, GHashTable *subclass_sets)
|
||||
read_mime_subclasses(const char *path, GHashTable *subclass_sets)
|
||||
{
|
||||
gchar *data = NULL;
|
||||
if (!g_file_get_contents(path, &data, NULL /* length */, NULL /* error */))
|
||||
@ -112,7 +112,7 @@ read_mime_subclasses(const gchar *path, GHashTable *subclass_sets)
|
||||
}
|
||||
|
||||
static gboolean
|
||||
filter_mime_globs(const gchar *path, guint is_globs2, GHashTable *supported_set,
|
||||
filter_mime_globs(const char *path, guint is_globs2, GHashTable *supported_set,
|
||||
GHashTable *output_set)
|
||||
{
|
||||
gchar *data = NULL;
|
||||
@ -120,7 +120,7 @@ filter_mime_globs(const gchar *path, guint is_globs2, GHashTable *supported_set,
|
||||
return FALSE;
|
||||
|
||||
gchar *datasave = NULL;
|
||||
for (const gchar *line = strtok_r(data, "\r\n", &datasave); line;
|
||||
for (const char *line = strtok_r(data, "\r\n", &datasave); line;
|
||||
line = strtok_r(NULL, "\r\n", &datasave)) {
|
||||
if (*line == '#')
|
||||
continue;
|
||||
|
Loading…
Reference in New Issue
Block a user