[GRASS-dev] [GRASS GIS] #1662: Caching bug in 3D raster library with large data

GRASS GIS trac at osgeo.org
Tue Sep 3 07:49:07 PDT 2013


#1662: Caching bug in 3D raster library with large data
-------------------------------------+--------------------------------------
 Reporter:  huhabla                  |       Owner:  grass-dev@…              
     Type:  defect                   |      Status:  new                      
 Priority:  critical                 |   Milestone:  7.0.0                    
Component:  Raster3D                 |     Version:  svn-trunk                
 Keywords:  3D raster, tiles, cache  |    Platform:  Linux                    
      Cpu:  x86-32                   |  
-------------------------------------+--------------------------------------

Comment(by glynn):

 Replying to [comment:8 hamish]:

 > I see many times "long"* is used as a variable type in lib/raster3D/,
 e.g.:
 > (* and some "unsigned long" too)

 Historically, most of my "bulk" fixes for things like LFS skipped over the
 raster3D library (because the number of cases in raster3D often exceeded
 those in the rest of the GRASS code base combined).

 > so to make it LFS compatible on 32bit those having to do with file
 offsets and cell counts should be changed to e.g. off_t or use a G_*()
 wrapper instead? (none for lseek(), but we do have G_ftell() and
 G_fseek())

 File offsets should use off_t.

 Cell counts ... are a problem. "long long" and "int64_t" aren't in C89,
 "long" is only 32 bits on 64-bit Windows, size_t is unsigned.

 Windows itself doesn't have off_t (or fseeko/ftello). The POSIX functions
 in MSVCRT use either int (e.g. read, write) or long (e.g. lseek). Some of
 them have 64-bit variants using !__int64 (e.g. _lseeki64, although the
 name has changed between MSVCRT versions).

-- 
Ticket URL: <https://trac.osgeo.org/grass/ticket/1662#comment:10>
GRASS GIS <http://grass.osgeo.org>



More information about the grass-dev mailing list