~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/pbms/src/cslib/CSMemory.cc

  • Committer: Mark Atwood
  • Date: 2011-11-14 07:30:41 UTC
  • Revision ID: me@mark.atwood.name-20111114073041-mo2hgg8ouseo2kpu
releaseĀ 2011.11.29

Show diffs side-by-side

added added

removed removed

Lines of Context:
311
311
        unsigned char   *ptr = (unsigned char *) p - MEM_DEBUG_HDR_SIZE;
312
312
        MemoryDebugPtr  debug_ptr = (MemoryDebugPtr) ptr;
313
313
        size_t                  size = debug_ptr->size;
 
314
        long                    a_value;  /* Added to simplfy debugging. */
314
315
 
315
316
        if (!ASSERT(p)) 
316
317
                return(0);
317
318
        if (!ASSERT(((size_t) p & 1L) == 0)) 
318
319
                return(0);
319
 
 
 
320
        a_value = MEM_FREED;
320
321
        if (debug_ptr->check == MEM_FREED) { 
321
322
                mm_println("MM ERROR: Pointer already freed 'debug_ptr->check != MEM_FREED'");
322
323
                return(0);
323
324
        }
324
 
 
 
325
        a_value = MEM_HEADER;
325
326
        if (debug_ptr->check != MEM_HEADER) {
326
327
                mm_println("MM ERROR: Header not valid 'debug_ptr->check != MEM_HEADER'");
327
328
                return(0);
328
329
        }
329
 
 
 
330
        a_value = MEM_TRAILER_BYTE;
330
331
        if (!(*((unsigned char *) ptr + size + MEM_DEBUG_HDR_SIZE) == MEM_TRAILER_BYTE &&
331
332
                        *((unsigned char *) ptr + size + MEM_DEBUG_HDR_SIZE + 1L) == MEM_TRAILER_BYTE)) { 
332
333
                mm_throw_assertion(mm_ptr, p, "Trailer overwritten");