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

Function writeTreeNode

maptree.c:621–660  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

619
620
621static void writeTreeNode(SHPTreeHandle disktree, treeNodeObj *node)
622{
623 int i,j;
624 ms_int32 offset;
625 char *pabyRec = NULL;
626
627 offset = getSubNodeOffset(node);
628
629 pabyRec = msSmallMalloc(sizeof(rectObj) + (3 * sizeof(ms_int32)) + (node->numshapes * sizeof(ms_int32)) );
630
631 memcpy( pabyRec, &offset, 4);
632 if( disktree->needswap ) SwapWord( 4, pabyRec );
633
634 memcpy( pabyRec+4, &node->rect, sizeof(rectObj));
635 for (i=0; i < 4; i++)
636 if( disktree->needswap ) SwapWord( 8, pabyRec+4+(8*i) );
637
638 memcpy( pabyRec+36, &node->numshapes, 4);
639 if( disktree->needswap ) SwapWord( 4, pabyRec+36 );
640
641 j = node->numshapes*sizeof(ms_int32);
642 memcpy( pabyRec+40, node->ids, j);
643 for (i=0; i<node->numshapes; i++)
644 if( disktree->needswap ) SwapWord( 4, pabyRec+40+(4*i));
645
646 memcpy( pabyRec+j+40, &node->numsubnodes, 4);
647 if( disktree->needswap ) SwapWord( 4, pabyRec+40+j );
648
649 fwrite( pabyRec, 44+j, 1, disktree->fp);
650 free (pabyRec);
651
652 for(i=0; i<node->numsubnodes; i++ ) {
653 if(node->subnode[i])
654 writeTreeNode(disktree, node->subnode[i]);
655 }
656
657
658 return;
659
660}
661
662int msWriteTree(treeObj *tree, char *filename, int B_order)
663{

Callers 1

msWriteTreeFunction · 0.85

Calls 3

getSubNodeOffsetFunction · 0.85
msSmallMallocFunction · 0.85
SwapWordFunction · 0.70

Tested by

no test coverage detected