Changeset 12064
- Timestamp:
- 09/04/07 11:35:47 (1 year ago)
- Files:
-
- trunk/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp (modified) (8 diffs)
- trunk/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/gdal/ogr/ogrsf_frmts/generic/ogrdatasource.cpp
r12052 r12064 33 33 #include "ogr_gensql.h" 34 34 #include "ogr_attrind.h" 35 #include "cpl_multiproc.h" 35 36 36 37 CPL_CVSID("$Id$"); … … 46 47 m_nRefCount = 0; 47 48 m_poDriver = NULL; 49 m_hMutex = NULL; 48 50 } 49 51 … … 60 62 m_poStyleTable = NULL; 61 63 } 64 65 if( m_hMutex != NULL ) 66 CPLDestroyMutex( m_hMutex ); 62 67 } 63 68 … … 166 171 167 172 { 173 CPLMutexHolderD( (void **) &m_hMutex ); 168 174 int nSummaryCount = m_nRefCount; 169 175 int iLayer; … … 365 371 366 372 { 373 CPLMutexHolderD( &m_hMutex ); 374 367 375 if ( ! pszName ) 368 376 return NULL; … … 441 449 OGRLayer *poLayer = NULL; 442 450 443 for( i = 0; i < GetLayerCount(); i++ ) 444 { 445 poLayer = GetLayer(i); 451 { 452 CPLMutexHolderD( &m_hMutex ); 453 454 for( i = 0; i < GetLayerCount(); i++ ) 455 { 456 poLayer = GetLayer(i); 457 458 if( EQUAL(poLayer->GetLayerDefn()->GetName(),papszTokens[3]) ) 459 break; 460 } 446 461 447 if( EQUAL(poLayer->GetLayerDefn()->GetName(),papszTokens[3]) ) 448 break; 449 } 450 451 if( i >= GetLayerCount() ) 452 { 453 CPLError( CE_Failure, CPLE_AppDefined, 454 "CREATE INDEX ON failed, no such layer as `%s'.", 455 papszTokens[3] ); 456 CSLDestroy( papszTokens ); 457 return OGRERR_FAILURE; 462 if( i >= GetLayerCount() ) 463 { 464 CPLError( CE_Failure, CPLE_AppDefined, 465 "CREATE INDEX ON failed, no such layer as `%s'.", 466 papszTokens[3] ); 467 CSLDestroy( papszTokens ); 468 return OGRERR_FAILURE; 469 } 458 470 } 459 471 … … 539 551 OGRLayer *poLayer=NULL; 540 552 541 for( i = 0; i < GetLayerCount(); i++ ) 542 { 543 poLayer = GetLayer(i); 553 { 554 CPLMutexHolderD( &m_hMutex ); 555 556 for( i = 0; i < GetLayerCount(); i++ ) 557 { 558 poLayer = GetLayer(i); 544 559 545 if( EQUAL(poLayer->GetLayerDefn()->GetName(),papszTokens[3]) ) 546 break; 547 } 548 549 if( i >= GetLayerCount() ) 550 { 551 CPLError( CE_Failure, CPLE_AppDefined, 552 "CREATE INDEX ON failed, no such layer as `%s'.", 553 papszTokens[3] ); 554 CSLDestroy( papszTokens ); 555 return OGRERR_FAILURE; 560 if( EQUAL(poLayer->GetLayerDefn()->GetName(),papszTokens[3]) ) 561 break; 562 } 563 564 if( i >= GetLayerCount() ) 565 { 566 CPLError( CE_Failure, CPLE_AppDefined, 567 "CREATE INDEX ON failed, no such layer as `%s'.", 568 papszTokens[3] ); 569 CSLDestroy( papszTokens ); 570 return OGRERR_FAILURE; 571 } 556 572 } 557 573 … … 916 932 917 933 { 934 CPLMutexHolderD( &m_hMutex ); 918 935 int i; 919 936 OGRErr eErr; trunk/gdal/ogr/ogrsf_frmts/ogrsf_frmts.h
r11853 r12064 56 56 protected: 57 57 int m_bFilterIsEnvelope; 58 OGRGeometry *m_poFilterGeom;58 OGRGeometry *m_poFilterGeom; 59 59 OGREnvelope m_sFilterEnvelope; 60 60 61 61 int FilterGeometry( OGRGeometry * ); 62 62 int InstallFilter( OGRGeometry * ); … … 153 153 { 154 154 friend class OGRSFDriverRegistrar; 155 156 void *m_hMutex; 155 157 156 158 public:
