Changeset c232af in git for Singular/ipid.cc


Ignore:
Timestamp:
Aug 14, 2000, 2:58:28 PM (24 years ago)
Author:
Olaf Bachmann <obachman@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
d26c2e9dd38f1531c0e77c38e6177109182b5bca
Parents:
4697a8a1ccbf49d0048033ea29c651e3966ba729
Message:
* omalloc stuff


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

Legend:

Unmodified
Added
Removed
  • Singular/ipid.cc

    r4697a8a rc232af  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ipid.cc,v 1.40 2000-05-23 14:33:24 Singular Exp $ */
     4/* $Id: ipid.cc,v 1.41 2000-08-14 12:56:24 obachman Exp $ */
    55
    66/*
     
    1111
    1212#include "mod2.h"
     13#include <omalloc.h>
    1314#include "tok.h"
    1415#include "ipshell.h"
    1516#include "intvec.h"
    1617#include "febase.h"
    17 #include "mmemory.h"
    1818#include "numbers.h"
    1919#include "polys.h"
     
    2727#include "ipid.h"
    2828
     29
     30omBin sip_command_bin = omGetSpecBin(sizeof(sip_command));
     31omBin ip_command_bin = omGetSpecBin(sizeof(ip_command));
     32omBin sip_package_bin = omGetSpecBin(sizeof(sip_package));
     33omBin ip_package_bin = omGetSpecBin(sizeof(ip_package));
     34omBin idrec_bin = omGetSpecBin(sizeof(idrec));
     35omBin namerec_bin = omGetSpecBin(sizeof(namerec));
     36
    2937namehdl namespaceroot = NULL;
    3038#define TEST
     
    3543ring  currRing = NULL;
    3644ideal currQuotient = NULL;
     45omBin currPolyBin = NULL;
    3746char* iiNoName="_";
    3847
     
    5261  while (h!=NULL)
    5362  {
    54     mmTestLP(IDID(h));
     63    omCheckAddr(IDID(h));
    5564// =============================================================
    5665#if 0
     
    111120//  if (id!=NULL)
    112121//  {
    113 //    FreeL((ADDRESS)id);
     122//    omFree((ADDRESS)id);
    114123//    id=NULL;
    115124//  }
     
    120129{
    121130  //printf("define %s, %x, lev: %d, typ: %d\n", s,s,lev,t);
    122   idhdl h = (idrec *)Alloc0SizeOf(idrec);
     131  idhdl h = (idrec *)omAlloc0Bin(idrec_bin);
    123132  int   len = 0;
    124133  IDID(h)   = s;
     
    133142    switch (t)
    134143    {
    135     //the type with init routines:
     144      //the type with init routines:
    136145      case INTVEC_CMD:
    137146      case INTMAT_CMD:
    138         IDINTVEC(h) = NewIntvec0();
     147        IDINTVEC(h) = new intvec();
    139148        break;
    140149      case NUMBER_CMD:
     
    149158      case MAP_CMD:
    150159        IDIDEAL(h) = idInit(1,1);
    151         IDMAP(h)->preimage = mstrdup(IDID(currRingHdl));
     160        IDMAP(h)->preimage = omStrDup(IDID(currRingHdl));
    152161        break;
    153162      case STRING_CMD:
    154         IDSTRING(h) = mstrdup("");
     163        IDSTRING(h) = omStrDup("");
    155164        break;
    156165      case LIST_CMD:
    157         IDLIST(h)=(lists)AllocSizeOf(slists);
     166        IDLIST(h)=(lists)omAllocBin(slists_bin);
    158167        IDLIST(h)->Init();
    159168        break;
    160     //the types with the standard init: set the struct to zero
    161169      case LINK_CMD:
    162         len=sizeof(ip_link);
     170        IDLINK(h)=(si_link) omAlloc0Bin(sip_link_bin);
    163171        break;
    164172      case RING_CMD:
    165173      case QRING_CMD:
    166         len = sizeof(ip_sring);
     174        IDRING(h) = (ring) omAlloc0Bin(sip_sring_bin);
    167175        break;
    168176      case PACKAGE_CMD:
    169         len = sizeof(ip_package);
    170         break;
     177        IDPACKAGE(h) = (package) omAlloc0Bin(sip_package_bin);
     178        break;
     179      case PROC_CMD:
     180        IDPROC(h) = (procinfo*) omAlloc0Bin(procinfo_bin);
     181        break;
     182        //the types with the standard init: set the struct to zero
    171183      case RESOLUTION_CMD:
    172184        len=sizeof(ssyStrategy);
    173185        break;
    174       case PROC_CMD:
    175         len=sizeof(procinfo);
    176         break;
    177186    //other types: without init (int,script,poly,def,package)
    178187    }
    179188    if (len!=0)
    180189    {
    181       IDSTRING(h) = (char *)Alloc0(len);
     190      IDSTRING(h) = (char *)omAlloc0(len);
    182191    }
    183192    // additional settings:--------------------------------------
     
    196205      IDPACKAGE(h)->loaded = FALSE;
    197206    }
    198 
    199207  }
    200208  // --------------------------------------------------------
     
    224232  &&(s==IDID(currRingHdl)))
    225233  {
    226     s=mstrdup(s);
     234    s=omStrDup(s);
    227235  }
    228236  // is it already defined in root ?
     
    231239    if (IDLEV(h)!=lev)
    232240    {
    233       s=mstrdup(s);
     241      s=omStrDup(s);
    234242    }
    235243    else if ((IDTYP(h) == t)||(t==DEF_CMD))
     
    261269      if (IDLEV(h)!=lev)
    262270      {
    263         s=mstrdup(s);
     271        s=omStrDup(s);
    264272      }
    265273      else if ((IDTYP(h) == t)||(t==DEF_CMD))
     
    286294    if ((h=topnsroot->get(s,lev))!=NULL)
    287295    {
    288         s=mstrdup(s);
     296        s=omStrDup(s);
    289297    }
    290298  }
     
    297305      if (IDLEV(h)!=lev)
    298306      {
    299         s=mstrdup(s);
     307        s=omStrDup(s);
    300308      }
    301309      else if ((IDTYP(h) == t)||(t==DEF_CMD))
     
    402410        /* no complete init*/
    403411      }
     412      else
     413      {
     414        // we are killing the basering, so: make sure that
     415        // sLastPrinted is killed before this ring is destroyed
     416        if (((sLastPrinted.rtyp>BEGIN_RING) && (sLastPrinted.rtyp<END_RING))
     417        || ((sLastPrinted.rtyp==LIST_CMD)&&(lRingDependend((lists)sLastPrinted.data))))
     418        {
     419          sLastPrinted.CleanUp();
     420          memset(&sLastPrinted,0,sizeof(sleftv));
     421        }
     422      }
    404423      while (hdh!=NULL)
    405424      {
     
    468487    {
    469488      map im = IDMAP(h);
    470       FreeL((ADDRESS)im->preimage);
     489      omFree((ADDRESS)im->preimage);
    471490    }
    472491    idDelete(&iid);
     
    475494  else if (IDTYP(h) == STRING_CMD)
    476495  {
    477     FreeL((ADDRESS)IDSTRING(h));
     496    omFree((ADDRESS)IDSTRING(h));
    478497    //IDSTRING(h)=NULL;
    479498  }
     
    497516  {
    498517    IDLIST(h)->Clean();
    499     //Free((ADDRESS)IDLIST(h)->m, (IDLIST(h)->nr+1)*sizeof(sleftv));
    500     //FreeSizeOf((ADDRESS)IDLIST(h), slists);
     518    //omFreeSize((ADDRESS)IDLIST(h)->m, (IDLIST(h)->nr+1)*sizeof(sleftv));
     519    //omFreeBin((ADDRESS)IDLIST(h),  slists_bin);
    501520  }
    502521  // link  -------------------------------------------------------------
     
    523542#endif
    524543
    525   FreeL((ADDRESS)IDID(h));
     544  if (IDID(h)) // OB: ?????
     545    omFree((ADDRESS)IDID(h));
    526546  //IDID(h)=NULL;
    527547  if (h == (*ih))
     
    545565    }
    546566  }
    547   FreeSizeOf((ADDRESS)h,idrec);
     567  omFreeBin((ADDRESS)h, idrec_bin);
    548568}
    549569
     
    624644  while (h!=NULL) { l++; h=IDNEXT(h); }
    625645  /* allocate list */
    626   lists L=(lists)AllocSizeOf(slists);
     646  lists L=(lists)omAllocBin(slists_bin);
    627647  L->Init(l);
    628648  /* copy names */
     
    633653    /* list is initialized with 0 => no need to clear anything */
    634654    L->m[l].rtyp=STRING_CMD;
    635     L->m[l].data=mstrdup(IDID(h));
     655    L->m[l].data=omStrDup(IDID(h));
    636656    l++;
    637657    h=IDNEXT(h);
     
    700720    char p[8];
    701721    sprintf(p, "%d", pi->ref);
    702     return mstrdup(p);  // MEMORY-LEAK
     722    return omStrDup(p);  // MEMORY-LEAK
    703723  }
    704724  return "??";
     
    710730  if (pi->ref <= 0)
    711731  {
    712     FreeL((ADDRESS)pi->libname);
    713     FreeL((ADDRESS)pi->procname);
     732    if (pi->libname != NULL) // OB: ????
     733      omFree((ADDRESS)pi->libname);
     734    if (pi->procname != NULL) // OB: ????
     735      omFree((ADDRESS)pi->procname);
     736
    714737    if( pi->language == LANG_SINGULAR)
    715738    {
    716       FreeL((ADDRESS)pi->data.s.body);
     739      if (pi->data.s.body != NULL) // OB: ????
     740        omFree((ADDRESS)pi->data.s.body);
    717741    }
    718742    if( pi->language == LANG_C)
     
    738762  piCleanUp(pi);
    739763  if (pi->ref <= 0)
    740     FreeSizeOf((ADDRESS)pi, procinfo);
     764    omFreeBin((ADDRESS)pi,  procinfo_bin);
    741765  return FALSE;
    742766}
     
    755779#endif /* HAVE_DYNAMIC_LOADING */
    756780    }
    757     FreeL((ADDRESS)pack->libname);
     781    omFree((ADDRESS)pack->libname);
    758782    memset((void *) pack, 0, sizeof(sip_package));
    759783    pack->language=LANG_NONE;
     
    779803    if(checkPackage(pack)) {
    780804      paCleanUp(pack);
    781       FreeSizeOf((ADDRESS)pack, sip_package);
     805      omFreeBin((ADDRESS)pack,  sip_package_bin);
    782806    } else return FALSE;
    783807  } else paCleanUp(pack);
     
    788812char *idhdl2id(idhdl pck, idhdl h)
    789813{
    790   char *name = (char *)AllocL(strlen(pck->id) + strlen(h->id) + 3);
     814  char *name = (char *)omAlloc(strlen(pck->id) + strlen(h->id) + 3);
    791815  sprintf(name, "%s::%s", pck->id, h->id);
    792816  return(name);
     
    800824  if(q==NULL)
    801825  {
    802     p = mstrdup("");
    803     i = (char *)AllocL(strlen(name)+1);
     826    p = omStrDup("");
     827    i = (char *)omAlloc(strlen(name)+1);
    804828    *i = '\0';
    805829    sscanf(name, "%s", i);
     
    812836  else {
    813837    if( *(q+1) != ':') return;
    814     i = (char *)AllocL(strlen(name)+1);
     838    i = (char *)omAlloc(strlen(name)+1);
    815839    *i = '\0';
    816840    if(name == q)
    817841    {
    818       p = mstrdup("");
     842      p = omStrDup("");
    819843      sscanf(name, "::%s", i);
    820844#ifdef HAVE_NAMESPACES
     
    825849    else
    826850    {
    827       p = (char *)AllocL(strlen(name)+1);
     851      p = (char *)omAlloc(strlen(name)+1);
    828852      sscanf(name, "%[^:]::%s", p, i);
    829853#ifdef HAVE_NAMESPACES
     
    838862  //printf("Package: '%s'\n", p);
    839863  //printf("Id Rec : '%s'\n", i);
    840   FreeL(p);
    841   FreeL(i);
     864  omFree(p);
     865  omFree(i);
    842866}
    843867
     
    855879{
    856880  //printf("PUSH: put entry (%s) on stack\n", name);
    857   namehdl ns = (namerec *)Alloc0SizeOf(namerec);
     881  namehdl ns = (namerec *)omAlloc0Bin(namerec_bin);
    858882  extern int myynest;
    859883  if(nesting<0) nesting = myynest;
     
    868892    ns->next    = NULL;
    869893#ifdef HAVE_NAMESPACES
    870     ns->pack    = (ip_package *)Alloc0SizeOf(ip_package);
     894    ns->pack    = (ip_package *)omAlloc0Bin(ip_package_bin);
    871895#endif /* HAVE_NAMESPACES */
    872896    ns->isroot  = TRUE;
     
    885909    //printf("Saving Ring %x, %x\n", this->currRing, currRing);
    886910  }
    887   ns->name    = mstrdup(name);
     911  ns->name    = omStrDup(name);
    888912  ns->myynest = nesting;
    889913
     
    894918#if 0
    895919  if(init && ns->isroot) {
    896     idhdl pl = enterid( mstrdup("Top"),0, PACKAGE_CMD,
     920    idhdl pl = enterid( omStrDup("Top"),0, PACKAGE_CMD,
    897921                      &NSROOT(namespaceroot), TRUE );
    898922    if(pl != NULL) {
    899       FreeSizeOf((ADDRESS)IDPACKAGE(pl), ip_package);
     923      omFreeBin((ADDRESS)IDPACKAGE(pl),  ip_package_bin);
    900924      IDPACKAGE(pl) = ns->pack;
    901925    }
     
    920944  ns = this;
    921945  namespaceroot = this->next;
    922   FreeL((ADDRESS)ns->name);
    923   FreeSizeOf((ADDRESS)ns, namerec);
     946  omFree((ADDRESS)ns->name);
     947  omFreeBin((ADDRESS)ns,  namerec_bin);
    924948  return(namespaceroot);
    925949}
Note: See TracChangeset for help on using the changeset viewer.