Opened 6 years ago
Closed 6 years ago
#6755 closed enhancement (fixed)
Improve the efficiency of SHPCreateObject in shpopen.c
Reported by: | sunxunfeng | Owned by: | warmerdam |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | default | Version: | svn-trunk |
Severity: | normal | Keywords: | |
Cc: |
Description (last modified by )
To Improve the efficiency of program(SHPCreateObject in shpopen.c) execution:
https://trac.osgeo.org/gdal/browser/trunk/gdal/ogr/ogrsf_frmts/shape/shpopen.c Rev 36763
From:
1516 if( nVertices > 0 ) 1517 { 1518 psObject->padfX = (double *) calloc(sizeof(double),nVertices); 1519 psObject->padfY = (double *) calloc(sizeof(double),nVertices); 1520 psObject->padfZ = (double *) calloc(sizeof(double),nVertices); 1521 psObject->padfM = (double *) calloc(sizeof(double),nVertices); 1522 1523 for( i = 0; i < nVertices; i++ ) 1524 { 1525 if( padfX != NULL ) 1526 psObject->padfX[i] = padfX[i]; 1527 if( padfY != NULL ) 1528 psObject->padfY[i] = padfY[i]; 1529 if( padfZ != NULL && bHasZ ) 1530 psObject->padfZ[i] = padfZ[i]; 1531 if( padfM != NULL && bHasM ) 1532 psObject->padfM[i] = padfM[i]; 1533 } 1534 if( padfM != NULL && bHasM ) 1535 psObject->bMeasureIsUsed = TRUE; 1536 }
To:
1516 if( nVertices > 0 ) 1517 { 1518 int nSize = sizeof(double) * nVertices; 1519 psObject->padfX = (double *) malloc(nSize); 1520 psObject->padfY = (double *) malloc(nSize); 1521 psObject->padfZ = (double *) malloc(nSize); 1522 psObject->padfM = (double *) malloc(nSize); 1523 if( padfX != NULL && psObject->padfX != NULL) 1524 memcpy(psObject->padfX, padfX, nSize); 1525 if( padfY != NULL && psObject->padfY != NULL) 1526 memcpy(psObject->padfY, padfY, nSize); 1527 if( padfZ != NULL && bHasZ && psObject->padfZ != NULL) 1528 memcpy(psObject->padfZ, padfZ, nSize); 1529 if( padfM != NULL && bHasM && psObject->padfM != NULL) 1530 { 1531 memcpy(psObject->padfM, padfM, nSize); 1532 psObject->bMeasureIsUsed = TRUE; 1533 } 1534 }
Attachments (1)
Change History (3)
comment:1 by , 6 years ago
Description: | modified (diff) |
---|
by , 6 years ago
Attachment: | shpopen.c.patch added |
---|
Note:
See TracTickets
for help on using tickets.
patch file of shpopen.c(Rev 36763)