Prechádzať zdrojové kódy

size_t: update ogsf lib

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@52044 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Metz 13 rokov pred
rodič
commit
2333487ddb
5 zmenil súbory, kde vykonal 16 pridanie a 12 odobranie
  1. 3 3
      include/defs/ogsf.h
  2. 1 1
      include/ogsf.h
  3. 2 2
      lib/ogsf/gs.c
  4. 8 6
      lib/ogsf/gsds.c
  5. 2 0
      lib/ogsf/rowcol.h

+ 3 - 3
include/defs/ogsf.h

@@ -382,7 +382,7 @@ int gs_num_datah_reused(int);
 int gs_get_att_type(geosurf *, int);
 int gs_get_att_type(geosurf *, int);
 int gs_get_att_src(geosurf *, int);
 int gs_get_att_src(geosurf *, int);
 typbuff *gs_get_att_typbuff(geosurf *, int, int);
 typbuff *gs_get_att_typbuff(geosurf *, int, int);
-int gs_malloc_att_buff(geosurf *, int, int);
+size_t gs_malloc_att_buff(geosurf *, int, int);
 int gs_malloc_lookup(geosurf *, int);
 int gs_malloc_lookup(geosurf *, int);
 int gs_set_att_type(geosurf *, int, int);
 int gs_set_att_type(geosurf *, int, int);
 int gs_set_att_src(geosurf *, int, int);
 int gs_set_att_src(geosurf *, int, int);
@@ -615,8 +615,8 @@ typbuff *gsds_get_typbuff(int, IFLAG);
 char *gsds_get_name(int);
 char *gsds_get_name(int);
 int gsds_free_datah(int);
 int gsds_free_datah(int);
 int gsds_free_data_buff(int, int);
 int gsds_free_data_buff(int, int);
-int free_data_buffs(dataset *, int);
-int gsds_alloc_typbuff(int, int *, int, int);
+size_t free_data_buffs(dataset *, int);
+size_t gsds_alloc_typbuff(int, int *, int, int);
 int gsds_get_changed(int);
 int gsds_get_changed(int);
 int gsds_set_changed(int, IFLAG);
 int gsds_set_changed(int, IFLAG);
 int gsds_get_type(int);
 int gsds_get_type(int);

+ 1 - 1
include/ogsf.h

@@ -234,7 +234,7 @@ typedef struct
     int data_id;
     int data_id;
     int dims[MAXDIMS];
     int dims[MAXDIMS];
     int ndims;
     int ndims;
-    int numbytes;
+    size_t numbytes;
     char *unique_name;
     char *unique_name;
     typbuff databuff;
     typbuff databuff;
     IFLAG changed;
     IFLAG changed;

+ 2 - 2
lib/ogsf/gs.c

@@ -712,9 +712,9 @@ typbuff *gs_get_att_typbuff(geosurf * gs, int desc, int to_write)
    \param type buffer type (based on raster map type)
    \param type buffer type (based on raster map type)
 
 
    \return -1 on error
    \return -1 on error
-   \return pointer to typbuff (casted)
+   \return amount of allocated memory
  */
  */
-int gs_malloc_att_buff(geosurf * gs, int desc, int type)
+size_t gs_malloc_att_buff(geosurf * gs, int desc, int type)
 {
 {
     int hdata, dims[2], ndims;
     int hdata, dims[2], ndims;
 
 

+ 8 - 6
lib/ogsf/gsds.c

@@ -76,7 +76,7 @@ static int Numsets = 0;
 
 
 static int Cur_id = LUCKY;
 static int Cur_id = LUCKY;
 static int Cur_max;
 static int Cur_max;
-static int Tot_mem = 0;
+static size_t Tot_mem = 0;
 
 
 /*!
 /*!
    \brief Initialize gsds
    \brief Initialize gsds
@@ -390,9 +390,10 @@ int gsds_free_data_buff(int id, int typ)
 
 
    \return freed size
    \return freed size
  */
  */
-int free_data_buffs(dataset * ds, int typ)
+size_t free_data_buffs(dataset * ds, int typ)
 {
 {
-    int nsiz = 1, i, siz, freed = 0;
+    int i;
+    size_t siz, nsiz = 1, freed = 0;
 
 
     for (i = 0; i < ds->ndims; i++) {
     for (i = 0; i < ds->ndims; i++) {
 	nsiz *= ds->dims[i];
 	nsiz *= ds->dims[i];
@@ -476,12 +477,13 @@ int free_data_buffs(dataset * ds, int typ)
    \param ndims number of dimensions
    \param ndims number of dimensions
    \param type data type
    \param type data type
 
 
-   \return
+   \return amount of allocated memory
  */
  */
-int gsds_alloc_typbuff(int id, int *dims, int ndims, int type)
+size_t gsds_alloc_typbuff(int id, int *dims, int ndims, int type)
 {
 {
     dataset *ds;
     dataset *ds;
-    int i, siz = 1;
+    int i;
+    size_t siz = 1;
 
 
     if ((ds = get_dataset(id))) {
     if ((ds = get_dataset(id))) {
 	/*
 	/*

+ 2 - 0
lib/ogsf/rowcol.h

@@ -3,6 +3,8 @@
 
 
 /* these defines work with modeling coordinates only */
 /* these defines work with modeling coordinates only */
 
 
+/* TODO: avoid integer overflow */
+
 /* view resolutions */
 /* view resolutions */
 #define VXRES(gs)   (gs->x_mod * gs->xres)
 #define VXRES(gs)   (gs->x_mod * gs->xres)
 #define VYRES(gs)   (gs->y_mod * gs->yres)
 #define VYRES(gs)   (gs->y_mod * gs->yres)