@@ -312,17 +312,20 @@ int main( const int argc, const char * argv[] )
312312 unsigned * name_index_ptr = (unsigned *)(
313313 shared_memory_ptr + shared_layout_ptr->GetNameIndexOffset ()
314314 );
315-
316- name_stream.read (
317- (char *)name_index_ptr,
318- shared_layout_ptr->name_index_list_size *sizeof (unsigned )
319- );
315+ if (shared_layout_ptr->name_index_list_size > 0 ) {
316+ name_stream.read (
317+ (char *)name_index_ptr,
318+ shared_layout_ptr->name_index_list_size *sizeof (unsigned )
319+ );
320+ }
320321
321322 char * name_char_ptr = shared_memory_ptr + shared_layout_ptr->GetNameListOffset ();
322- name_stream.read (
323- name_char_ptr,
324- shared_layout_ptr->name_char_list_size *sizeof (char )
325- );
323+ if (shared_layout_ptr->name_char_list_size > 0 ) {
324+ name_stream.read (
325+ name_char_ptr,
326+ shared_layout_ptr->name_char_list_size *sizeof (char )
327+ );
328+ }
326329 name_stream.close ();
327330
328331 // load original edge information
@@ -370,11 +373,12 @@ int main( const int argc, const char * argv[] )
370373 geometry_input_stream.seekg (0 , geometry_input_stream.beg );
371374 geometry_input_stream.read ((char *)&temporary_value, sizeof (unsigned ));
372375 BOOST_ASSERT (temporary_value == shared_layout_ptr->geometries_index_list_size );
373-
374- geometry_input_stream.read (
375- (char *)geometries_index_ptr,
376- shared_layout_ptr->geometries_index_list_size *sizeof (unsigned )
377- );
376+ if (shared_layout_ptr->geometries_index_list_size > 0 ) {
377+ geometry_input_stream.read (
378+ (char *)geometries_index_ptr,
379+ shared_layout_ptr->geometries_index_list_size *sizeof (unsigned )
380+ );
381+ }
378382
379383 unsigned * geometries_list_ptr = (unsigned *)(
380384 shared_memory_ptr + shared_layout_ptr->GetGeometryListOffset ()
@@ -383,10 +387,12 @@ int main( const int argc, const char * argv[] )
383387 geometry_input_stream.read ((char *)&temporary_value, sizeof (unsigned ));
384388 BOOST_ASSERT (temporary_value == shared_layout_ptr->geometries_list_size );
385389
386- geometry_input_stream.read (
387- (char *)geometries_list_ptr,
388- shared_layout_ptr->geometries_list_size *sizeof (unsigned )
389- );
390+ if (shared_layout_ptr->geometries_list_size > 0 ) {
391+ geometry_input_stream.read (
392+ (char *)geometries_list_ptr,
393+ shared_layout_ptr->geometries_list_size *sizeof (unsigned )
394+ );
395+ }
390396
391397 // Loading list of coordinates
392398 FixedPointCoordinate * coordinates_ptr = (FixedPointCoordinate *)(
@@ -414,8 +420,9 @@ int main( const int argc, const char * argv[] )
414420 char * rtree_ptr = static_cast <char *>(
415421 shared_memory_ptr + shared_layout_ptr->GetRSearchTreeOffset ()
416422 );
417-
418- tree_node_file.read (rtree_ptr, sizeof (RTreeNode)*tree_size);
423+ if (tree_size > 0 ) {
424+ tree_node_file.read (rtree_ptr, sizeof (RTreeNode)*tree_size);
425+ }
419426 tree_node_file.close ();
420427
421428 // load the nodes of the search graph
0 commit comments