diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/buffer.cpp | 9 | ||||
-rw-r--r-- | src/buffer.h | 2 | ||||
-rw-r--r-- | src/cache.h | 27 |
3 files changed, 24 insertions, 14 deletions
diff --git a/src/buffer.cpp b/src/buffer.cpp index 57f965c..cbebfc2 100644 --- a/src/buffer.cpp +++ b/src/buffer.cpp | |||
@@ -41,12 +41,12 @@ void Bu::Buffer::fillReadBuf() | |||
41 | { | 41 | { |
42 | if( iReadBufFill+iReadPos < iBufSize ) | 42 | if( iReadBufFill+iReadPos < iBufSize ) |
43 | { | 43 | { |
44 | //printf("Buffer: Attempting to read %db.\n", iBufSize-iReadBufFill-iReadPos ); | 44 | printf("Buffer: Attempting to read %db.\n", iBufSize-iReadBufFill-iReadPos ); |
45 | iReadBufFill += rNext.read( | 45 | iReadBufFill += rNext.read( |
46 | sReadBuf+iReadPos+iReadBufFill, | 46 | sReadBuf+iReadPos+iReadBufFill, |
47 | iBufSize-iReadBufFill-iReadPos | 47 | iBufSize-iReadBufFill-iReadPos |
48 | ); | 48 | ); |
49 | //printf("Buffer: Read from stream, %db now in buffer.\n", iReadBufFill ); | 49 | printf("Buffer: Read from stream, %db now in buffer.\n", iReadBufFill ); |
50 | } | 50 | } |
51 | } | 51 | } |
52 | 52 | ||
@@ -152,3 +152,8 @@ void Bu::Buffer::flush() | |||
152 | } | 152 | } |
153 | } | 153 | } |
154 | 154 | ||
155 | bool Bu::Buffer::isEos() | ||
156 | { | ||
157 | return iReadPos == (iReadBufFill-1) && rNext.isEos(); | ||
158 | } | ||
159 | |||
diff --git a/src/buffer.h b/src/buffer.h index b931937..97d4127 100644 --- a/src/buffer.h +++ b/src/buffer.h | |||
@@ -30,6 +30,8 @@ namespace Bu | |||
30 | 30 | ||
31 | virtual void flush(); | 31 | virtual void flush(); |
32 | 32 | ||
33 | virtual bool isEos(); | ||
34 | |||
33 | private: | 35 | private: |
34 | void fillReadBuf(); | 36 | void fillReadBuf(); |
35 | 37 | ||
diff --git a/src/cache.h b/src/cache.h index 06b798c..1753407 100644 --- a/src/cache.h +++ b/src/cache.h | |||
@@ -317,20 +317,23 @@ namespace Bu | |||
317 | void erase( const keytype &cId ) | 317 | void erase( const keytype &cId ) |
318 | { | 318 | { |
319 | TRACE( cId ); | 319 | TRACE( cId ); |
320 | try { | 320 | if( hEnt.has( cId ) ) |
321 | if( hEnt.get( cId ).iRefs > 0 ) | 321 | { |
322 | { | 322 | try { |
323 | printf("Shouldn't delete, references still exist!\n"); | 323 | if( hEnt.get( cId ).iRefs > 0 ) |
324 | return; | 324 | { |
325 | printf("Shouldn't delete, references still exist!\n"); | ||
326 | return; | ||
327 | } | ||
325 | } | 328 | } |
329 | catch( Bu::HashException &e ) { | ||
330 | get( cId ); | ||
331 | } | ||
332 | |||
333 | pCalc->onUnload( hEnt.get( cId ).pData, cId ); | ||
334 | pStore->destroy( hEnt.get( cId ).pData, cId ); | ||
326 | } | 335 | } |
327 | catch( Bu::HashException &e ) { | 336 | |
328 | get( cId ); | ||
329 | } | ||
330 | |||
331 | pCalc->onUnload( hEnt.get( cId ).pData, cId ); | ||
332 | |||
333 | pStore->destroy( hEnt.get( cId ).pData, cId ); | ||
334 | hEnt.erase( cId ); | 337 | hEnt.erase( cId ); |
335 | } | 338 | } |
336 | 339 | ||