* viking -- GPS Data and Topo Analyzer, Explorer, and Manager
*
* Copyright (C) 2003-2008, Evan Battaglia <gtoevan@gmx.net>
+ * Copyright (C) 2007, Quy Tonthat <qtonthat@gmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#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) ))
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;
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;
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;
}
if (zip)
g_free(dem_mem);
- g_mapped_file_free(mf);
+ g_mapped_file_unref(mf);
return dem;
}
buffer[fread(buffer, 1, DEM_BLOCK_SIZE, f)] = '\0';
if ( ! dem_parse_header ( buffer, rv ) ) {
g_free ( rv );
+ fclose(f);
return NULL;
}
/* TODO: actually use header -- i.e. GET # OF COLUMNS EXPECTED */