MCPcopy Create free account
hub / github.com/Singular/Singular / rSetHdl

Function rSetHdl

Singular/ipshell.cc:5121–5179  ·  view source on GitHub ↗

from ring.cc

Source from the content-addressed store, hash-verified

5119
5120// from ring.cc
5121void rSetHdl(idhdl h)
5122{
5123 ring rg = NULL;
5124 if (h!=NULL)
5125 {
5126// Print(" new ring:%s (l:%d)\n",IDID(h),IDLEV(h));
5127 rg = IDRING(h);
5128 if (rg==NULL) return; //id <>NULL, ring==NULL
5129 omCheckAddrSize((ADDRESS)h,sizeof(idrec));
5130 if (IDID(h)) // OB: ????
5131 omCheckAddr((ADDRESS)IDID(h));
5132 rTest(rg);
5133 }
5134 else return;
5135
5136 // clean up history
5137 if (currRing!=NULL)
5138 {
5139 if(sLastPrinted.RingDependend())
5140 {
5141 sLastPrinted.CleanUp();
5142 }
5143
5144 if (rg!=currRing)/*&&(currRing!=NULL)*/
5145 {
5146 if (rg->cf!=currRing->cf)
5147 {
5148 denominator_list dd=DENOMINATOR_LIST;
5149 if (DENOMINATOR_LIST!=NULL)
5150 {
5151 if (TEST_V_ALLWARN)
5152 Warn("deleting denom_list for ring change to %s",IDID(h));
5153 do
5154 {
5155 n_Delete(&(dd->n),currRing->cf);
5156 dd=dd->next;
5157 omFreeBinAddr(DENOMINATOR_LIST);
5158 DENOMINATOR_LIST=dd;
5159 } while(DENOMINATOR_LIST!=NULL);
5160 }
5161 }
5162 }
5163 }
5164
5165 // test for valid "currRing":
5166 if ((rg!=NULL) && (rg->idroot==NULL))
5167 {
5168 ring old=rg;
5169 rg=rAssure_HasComp(rg);
5170 if (old!=rg)
5171 {
5172 rKill(old);
5173 IDRING(h)=rg;
5174 }
5175 }
5176 /*------------ change the global ring -----------------------*/
5177 rChangeCurrRing(rg);
5178 currRingHdl = h;

Callers 15

jjSetRingFunction · 0.85
fractalWalkProcFunction · 0.85
iiPStartFunction · 0.85
iiCallLibProcBeginFunction · 0.85
iiEStartFunction · 0.85
jiA_QRINGFunction · 0.85
grammar.ccFile · 0.85
rDefaultFunction · 0.85
iiAssignCRFunction · 0.85
mainFunction · 0.85
ssiSetCurrRingFunction · 0.85
ssiCheckCurrRingFunction · 0.85

Calls 7

WarnFunction · 0.85
n_DeleteFunction · 0.85
rAssure_HasCompFunction · 0.85
rKillFunction · 0.85
rChangeCurrRingFunction · 0.85
RingDependendMethod · 0.80
CleanUpMethod · 0.80

Tested by 1

mainFunction · 0.68