Changeset 393249 in git for Singular/mmcheck.c


Ignore:
Timestamp:
Jun 30, 1999, 4:54:11 PM (25 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
393d6becf0c8aa83ac7f4b2e9532908880829e72
Parents:
bc4605bbb4d385f31d7d577505aff5628d795356
Message:
* hannes: 64-bit fixes


git-svn-id: file:///usr/local/Singular/svn/trunk@3197 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/mmcheck.c

    rbc4605 r393249  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: mmcheck.c,v 1.6 1999-03-19 17:42:29 obachman Exp $ */
     4/* $Id: mmcheck.c,v 1.7 1999-06-30 14:54:11 Singular Exp $ */
    55
    66/*
     
    8282  {
    8383    DBMCB *what = (DBMCB*) (((char*) pages) + SIZE_OF_HEAP_PAGE_HEADER);
    84    
     84
    8585    for (i=0; i<nblocks; i++)
    8686    {
     
    9797  DBMCB* prev = NULL;
    9898  size_t size = SizeFromRealSize(heap->size);
    99  
     99
    100100  if (mm_minAddr == 0 || mm_minAddr > (void*) what)
    101101    mm_minAddr = (void*) what;
     
    103103  while (what != NULL)
    104104  {
    105     mmFillDBMCB(what, size, heap, MM_FREEFLAG, __FILE__, __LINE__);   
     105    mmFillDBMCB(what, size, heap, MM_FREEFLAG, __FILE__, __LINE__);
    106106    mmMoveDBMCBInto(&mm_theDBfree, what);
    107107    prev = what;
    108108    what = *((void**) what);
    109109  }
    110  
     110
    111111  if (mm_maxAddr == 0 || mm_maxAddr < (void*) prev)
    112112    mm_maxAddr = (void*) prev;
     
    116116{
    117117  (void)fprintf( stderr, "warning: %s\n", msg );
    118   (void)fprintf( stderr, "block %x %s in: %s:%d",
    119                  (int)&(what->data),
     118  (void)fprintf( stderr, "block %lx %s in: %s:%d",
     119                 (long)&(what->data),
    120120                 (what->flags & MM_FREEFLAG ? "freed" : "allocated" ),
    121121                 what->fname, what->lineno );
     
    124124#else
    125125  fprintf( stderr,"\n");
    126 #endif 
     126#endif
    127127  if (strcmp(msg,"size")==0)
    128128    (void)fprintf( stderr, "size is: %d, but check said %d \n",
     
    145145  }
    146146}
    147    
     147
    148148void mmPrintFL( const char* fname, const int lineno )
    149149{
     
    162162#define MM_BACK_PATTERN  249
    163163
    164 void mmFillDBMCB(DBMCB* what, size_t size, memHeap heap, 
     164void mmFillDBMCB(DBMCB* what, size_t size, memHeap heap,
    165165                 int flags, char* fname, int lineno)
    166166{
     
    173173  what->flags = flags;
    174174  what->init = 0;
    175  
     175
    176176  if (flags & MM_FREEFLAG)
    177177    memset(addr, MM_FREE_PATTERN, size);
     
    200200{
    201201  int i;
    202  
     202
    203203  for (i = 0; i<size; i++)
    204204    if (ptr[i] != pattern) return 0;
     
    215215  int ok=1;
    216216
    217   if ( ((int)what % 4 ) != 0 )
     217  if ( ((long)what % 4 ) != 0 )
    218218  {
    219219    fprintf( stderr, "warning: odd address\n" );
     
    239239    return 0;
    240240  }
    241  
     241
    242242  if ( ((long)what->fname<1000)
    243243  #ifdef unix
    244        ||((long)what->fname>(int)&(_end))
     244       ||((long)what->fname>(long)&(_end))
    245245  #endif
    246246  )
     
    296296                       MM_NUMBER_OF_FRONT_PATTERNS))
    297297    return mmPrintDBMCB(what , "front pattern", 0);
    298   if ((what->flags & MM_FREEFLAG)  && 
     298  if ((what->flags & MM_FREEFLAG)  &&
    299299      ! mmCheckPattern((char*)&(what->data), MM_FREE_PATTERN, 0))
    300300    return mmPrintDBMCB(what, "free pattern", 0);
    301   if (! mmCheckPattern((char*) &(what->data) + size, 
     301  if (! mmCheckPattern((char*) &(what->data) + size,
    302302                       MM_BACK_PATTERN, DebugOffsetBack))
    303303    return mmPrintDBMCB(what, "back pattern", 0);
     
    371371  return 1;
    372372}
    373  
     373
    374374static int   mmIsAddrOnDList(DBMCB *what, DBMCB* list, int s)
    375375{
     
    396396      return mmPrintDBMCB(what, "Used flag but not in used list", 0);
    397397  }
    398  
     398
    399399  if ( mmIsAddrOnDList((void*) what, mm_theDBfree.next,
    400400                       (void*) &(mm_theDBfree.next) -
     
    411411  return 1;
    412412}
    413  
     413
    414414int mmCheckDBMCB ( DBMCB * what, int size , int flags)
    415415{
     
    420420
    421421  if (mm_MDEBUG > 1 && ! mmTestMemory()) return 0;
    422  
     422
    423423  if (mm_MDEBUG > 0 && ! mmCheckListContainment(what, flags)) return 0;
    424424
     
    437437  DBMCB * what;
    438438
    439   if ( adr == NULL || size == 0) 
     439  if ( adr == NULL || size == 0)
    440440    return TRUE;
    441441
     
    445445    return FALSE;
    446446  }
    447    
     447
    448448  what = (DBMCB*)((char*)(adr) - DebugOffsetFront);
    449449
     
    476476                            fname, lineno);
    477477}
    478                            
    479 BOOLEAN mmDBTestBlock(const void* adr, const size_t size, 
     478
     479BOOLEAN mmDBTestBlock(const void* adr, const size_t size,
    480480                      const char * fname, const int lineno)
    481481{
    482482  int i;
    483483  DBMCB * what;
    484  
     484
    485485  if ( ( adr == NULL ) || ( size == 0 ) ) return TRUE;
    486486
     
    489489  {
    490490    what = (DBMCB*)((char*)(adr) - DebugOffsetFront);
    491     if ( ! mmCheckDBMCB( what, size, MM_USEDFLAG) ) 
     491    if ( ! mmCheckDBMCB( what, size, MM_USEDFLAG) )
    492492    {
    493493      mmPrintFL( fname, lineno );
     
    510510    adr = (size_t*)adr-1;
    511511#ifdef ALIGN_8
    512     l= (adr<=mm_maxAddr) ? (*(size_t*)((int)adr&(~7))) :0;
     512    l= (adr<=mm_maxAddr) ? (*(size_t*)((long)adr&(~((long)7)))) :0;
    513513#else
    514     l= (adr<=mm_maxAddr) ? (*(size_t*)((int)adr&(~3))) :0;
     514    l= (adr<=mm_maxAddr) ? (*(size_t*)((long)adr&(~((long)3)))) :0;
    515515#endif
    516516    return mmDBTestBlock( adr,l, fname, lineno );
Note: See TracChangeset for help on using the changeset viewer.