X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/dad45413b94d2a55276b62f6e1ff889cb9e6f0d7..fffcc269ddb7ea0b688ffc2744f7b710453bcb04:/src/dem.c diff --git a/src/dem.c b/src/dem.c index 84c257e9..cf1cb02d 100644 --- a/src/dem.c +++ b/src/dem.c @@ -48,6 +48,11 @@ #include "dem.h" #include "file.h" +/* Compatibility */ +#if ! GLIB_CHECK_VERSION(2,22,0) +#define g_mapped_file_unref g_mapped_file_free +#endif + #define DEM_BLOCK_SIZE 1024 #define GET_COLUMN(dem,n) ((VikDEMColumn *)g_ptr_array_index( (dem)->columns, (n) )) @@ -352,7 +357,7 @@ static VikDEM *vik_dem_read_srtm_hgt(const gchar *file_name, const gchar *basena dem->n_columns = 0; if ((mf = g_mapped_file_new(file_name, FALSE, &error)) == NULL) { - g_error(_("Couldn't map file %s: %s"), file_name, error->message); + g_critical(_("Couldn't map file %s: %s"), file_name, error->message); g_error_free(error); g_free(dem); return NULL; @@ -365,7 +370,7 @@ static VikDEM *vik_dem_read_srtm_hgt(const gchar *file_name, const gchar *basena gulong ucsize; if ((unzip_mem = unzip_hgt_file(dem_file, &ucsize)) == NULL) { - g_mapped_file_free(mf); + g_mapped_file_unref(mf); g_ptr_array_free(dem->columns, TRUE); g_free(dem); return NULL; @@ -374,6 +379,8 @@ static VikDEM *vik_dem_read_srtm_hgt(const gchar *file_name, const gchar *basena dem_mem = unzip_mem; file_size = ucsize; } + else + dem_mem = (gint16 *)dem_file; if (file_size == (num_rows_3sec * num_rows_3sec * sizeof(gint16))) arcsec = 3; @@ -381,7 +388,7 @@ static VikDEM *vik_dem_read_srtm_hgt(const gchar *file_name, const gchar *basena arcsec = 1; else { g_warning("%s(): file %s does not have right size", __PRETTY_FUNCTION__, basename); - g_mapped_file_free(mf); + g_mapped_file_unref(mf); g_free(dem); return NULL; } @@ -409,7 +416,7 @@ static VikDEM *vik_dem_read_srtm_hgt(const gchar *file_name, const gchar *basena if (zip) g_free(dem_mem); - g_mapped_file_free(mf); + g_mapped_file_unref(mf); return dem; }