title: get heap corruption when changing member variables order
body: <p>i have a quite strange problem. my class has -among others-
  following memers:</p>
  
  <pre><code>GLboolean has_alpha; 
  GLuint width;
  GLuint height;
  GLuint length;
  GLuint millisPerFrame;
  GLfloat uv[2];
  GLuint texsize[2];
  GLint compsize;
      // location2 
  long preload_interval_next;
  long preload_interval;
  </code></pre>
  
  <p>if i put the has_alpha at (location2) i get</p>
  
  <p>a) different object size, sizeof reports 248 instead of 252 bytes</p>
  
  <p>and</p>
  
  <p>b) hefty heap corruptions</p>
  
  <p>GLboolean is defined as unsigned char, but since i use NO optimization at all
  ( double checked this ) this should be padded to 4 bytes anyway. 
  And in the end, if it pads, it should do it at both locations .. </p>
  
  <p>compilers tested: CLANG ( c++ ), GCC4.2 com.apple.compilers.llvmgcc42</p>
  
  <p>Anyone an idea how to track this down?</p>