MCPcopy Index your code
hub / github.com/MapServer/MapServer / readTreeNode

Function readTreeNode

maptree.c:537–572  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

535}
536
537treeNodeObj *readTreeNode( SHPTreeHandle disktree )
538{
539 int i,res;
540 ms_int32 offset;
541 treeNodeObj *node;
542
543 node = (treeNodeObj *) msSmallMalloc(sizeof(treeNodeObj));
544 node->ids = NULL;
545
546 res = fread( &offset, 4, 1, disktree->fp );
547 if ( !res )
548 return NULL;
549
550 if ( disktree->needswap ) SwapWord ( 4, &offset );
551
552 fread( &node->rect, sizeof(rectObj), 1, disktree->fp );
553 if ( disktree->needswap ) SwapWord ( 8, &node->rect.minx );
554 if ( disktree->needswap ) SwapWord ( 8, &node->rect.miny );
555 if ( disktree->needswap ) SwapWord ( 8, &node->rect.maxx );
556 if ( disktree->needswap ) SwapWord ( 8, &node->rect.maxy );
557
558 fread( &node->numshapes, 4, 1, disktree->fp );
559 if ( disktree->needswap ) SwapWord ( 4, &node->numshapes );
560 if( node->numshapes > 0 )
561 node->ids = (ms_int32 *)msSmallMalloc(sizeof(ms_int32)*node->numshapes);
562 fread( node->ids, node->numshapes*4, 1, disktree->fp );
563 for( i=0; i < node->numshapes; i++ )
564 {
565 if ( disktree->needswap ) SwapWord ( 4, &node->ids[i] );
566 }
567
568 fread( &node->numsubnodes, 4, 1, disktree->fp );
569 if ( disktree->needswap ) SwapWord ( 4, &node->numsubnodes );
570
571 return node;
572}
573
574treeObj *msReadTree(char *filename, int debug)
575{

Callers 3

msReadTreeFunction · 0.85
mainFunction · 0.85
mainFunction · 0.85

Calls 2

msSmallMallocFunction · 0.85
SwapWordFunction · 0.70

Tested by

no test coverage detected