| 293 | } |
| 294 | |
| 295 | static void killlocals0(int v, idhdl * localhdl, const ring r) |
| 296 | { |
| 297 | idhdl h = *localhdl; |
| 298 | while (h!=NULL) |
| 299 | { |
| 300 | int vv; |
| 301 | //Print("consider %s, lev: %d:",IDID(h),IDLEV(h)); |
| 302 | if ((vv=IDLEV(h))>0) |
| 303 | { |
| 304 | if (vv < v) |
| 305 | { |
| 306 | if (iiNoKeepRing) |
| 307 | { |
| 308 | //PrintS(" break\n"); |
| 309 | return; |
| 310 | } |
| 311 | h = IDNEXT(h); |
| 312 | //PrintLn(); |
| 313 | } |
| 314 | else //if (vv >= v) |
| 315 | { |
| 316 | idhdl nexth = IDNEXT(h); |
| 317 | killhdl2(h,localhdl,r); |
| 318 | h = nexth; |
| 319 | //PrintS("kill\n"); |
| 320 | } |
| 321 | } |
| 322 | else |
| 323 | { |
| 324 | h = IDNEXT(h); |
| 325 | //PrintLn(); |
| 326 | } |
| 327 | } |
| 328 | } |
| 329 | |
| 330 | void killlocals_rec(idhdl *root,int v, ring r) |
| 331 | { |
no test coverage detected