Ignore:
Timestamp:
03/14/22 14:33:17 (2 years ago)
Author:
ymipsl
Message:

Bug fix when resizing buffer on server size.

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/dev/dev_ym/XIOS_COUPLING/src/buffer_server.cpp

    r2246 r2309  
    156156      first=0 ; 
    157157      count-- ; 
     158      used-- ; 
    158159      end=size ; 
    159160    } 
     
    182183          ERROR("void CServerBuffer::freeBuffer(size_t count)", 
    183184                 <<"cannot free required size in buffer") ; 
     185      } 
     186    } 
     187    used-=count ; 
     188  } 
     189 
     190  void CServerBuffer::popBuffer(size_t count) 
     191  { 
     192    if (count==0) return ; 
     193 
     194    if (current==0)   
     195    { 
     196      current = end ; 
     197      end=size ; 
     198    } 
     199     
     200 
     201    if (first<=current) 
     202    { 
     203      if (current-count >first) 
     204      { 
     205        current-=count ; 
     206      } 
     207      else 
     208      { 
     209          ERROR("void CServerBuffer::popBuffer(size_t count)", 
     210                 <<"cannot pop required size in buffer") ; 
     211      } 
     212 
     213    } 
     214    else 
     215    { 
     216      if (current-count>=0) 
     217      { 
     218        current-=count ; 
     219      } 
     220      else 
     221      { 
     222          ERROR("void CServerBuffer::freeBuffer(size_t count)", 
     223                 <<"cannot pop required size in buffer") ; 
    184224      } 
    185225    } 
Note: See TracChangeset for help on using the changeset viewer.