Optimize causes an error.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This Method works just find and dandy if I use no optimization. If I
use O1, O2, or O3  the if statement below the comment is always
returning true!
I have initialized all the member variables and still if I compile
with O1 it just doesn't work.
BTW this code is to cache the index of the file to speed up a binary
search. It was tacked on when we found that the flash file system was
too slow.

And now for a simple question. How the heck to I find out how much
free memory I have in c?
None of the programmers at my office know because we haven't needed to
check for free memory for many years.
Thanks for any help.


void PPDict1::getData(int position, int size, unsigned char *buffer) {
   int fsize = getDataLength();
   if ((position + size) > fsize) {
       memset(buffer, 0, size);
       return;
   }
   int tinx=(position-getIndexOffset())+size;
// WITH O1 this like is always returning true!
   if((tinx<getIndexSize())&&(indexPTR_!=0)){
       inxcount_++;
       void * tPtr=indexPTR_+position-getIndexOffset();
       memcpy(buffer, tPtr, size);
   }else{
       dictStream_.seekg(position);
       dictStream_.read((char *)buffer, size);
       profcount_++;
   }
}

[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux