Changeset 1505bd in git
- Timestamp:
- May 13, 2019, 4:44:50 PM (4 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 493663662cc7fa3b704960e9bc976cd4e6fdcb2d
- Parents:
- d0ca0b8ae05c9cfcf2578b78e43825144b88299c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/iplib.cc
rd0ca0b r1505bd 603 603 omFreeBin((ADDRESS)hh, idrec_bin); 604 604 } 605 else606 {607 WarnS("internal: lost ring in iiCallLib");608 }609 605 } 610 606 currRingHdl=save_ringhdl; … … 686 682 /// args: NULL terminated array of arguments 687 683 /// arg_types: 0 terminated array of corresponding types 688 void* iiCallLibProcM(const char*n, void **args, int* arg_types, BOOLEAN &err)684 leftv ii_CallLibProcM(const char*n, void **args, int* arg_types, const ring R, BOOLEAN &err) 689 685 { 690 686 idhdl h=ggetid(n); … … 698 694 idhdl save_ringhdl=currRingHdl; 699 695 ring save_ring=currRing; 696 rChangeCurrRing(R); 700 697 iiCallLibProcBegin(); 701 698 // argument: … … 727 724 if (err==FALSE) 728 725 { 729 void*r=iiRETURNEXPR.data;730 iiRETURNEXPR.data=NULL;731 iiRETURNEXPR.CleanUp();732 return r;726 leftv h=(leftv)omAllocBin(sleftv_bin); 727 memcpy(h,&iiRETURNEXPR,sizeof(sleftv)); 728 memset(&iiRETURNEXPR,0,sizeof(sleftv)); 729 return h; 733 730 } 734 731 return NULL; -
Singular/ipshell.h
rd0ca0b r1505bd 196 196 BOOLEAN iiMake_proc(idhdl pn, package pack, leftv sl); 197 197 void* iiCallLibProc1(const char* n, void *arg, int arg_type, BOOLEAN &err); 198 void* iiCallLibProcM(const char* n, void **args, int *arg_types, BOOLEAN &err);198 leftv ii_CallLibProcM(const char* n, void **args, int *arg_types, const ring R, BOOLEAN &err); 199 199 ideal ii_CallProcId2Id(const char* lib,const char* proc, ideal arg,const ring R); 200 200 int ii_CallProcId2Int(const char* lib,const char* proc, ideal arg,const ring R); -
kernel/ideals.cc
rd0ca0b r1505bd 303 303 void *args[]={temp,(void*)1,NULL}; 304 304 int arg_t[]={MODUL_CMD,INT_CMD,0}; 305 temp1=(ideal)iiCallLibProcM("modStd",args,arg_t,err); 305 leftv temp0=ii_CallLibProcM("modStd",args,arg_t,currRing,err); 306 temp1=(ideal)temp0->data; 307 omFreeBin((ADDRESS)temp0,sleftv_bin); 306 308 if (err) 307 309 { … … 345 347 void *args[]={temp,v,NULL}; 346 348 int arg_t[]={MODUL_CMD,IDEAL_CMD,0}; 347 temp1=(ideal)iiCallLibProcM("satstd",args,arg_t,err); 349 leftv temp0=ii_CallLibProcM("satstd",args,arg_t,currRing,err); 350 temp1=(ideal)temp0->data; 351 omFreeBin((ADDRESS)temp0, sleftv_bin); 348 352 } 349 353 if (err) … … 655 659 void *args[]={idCopy(h2),(void*)1,NULL}; 656 660 int arg_t[]={MODUL_CMD,INT_CMD,0}; 657 h3=(ideal)iiCallLibProcM("modStd",args,arg_t,err); 661 leftv temp0=ii_CallLibProcM("modStd",args,arg_t,currRing,err); 662 h3=(ideal)temp0->data; 663 omFreeBin((ADDRESS)temp0,sleftv_bin); 658 664 if (err) 659 665 { … … 697 703 void *args[]={idCopy(h2),v,NULL}; 698 704 int arg_t[]={MODUL_CMD,IDEAL_CMD,0}; 699 h3=(ideal)iiCallLibProcM("satstd",args,arg_t,err); 705 leftv temp0=ii_CallLibProcM("satstd",args,arg_t,currRing,err); 706 h3=(ideal)temp0->data; 707 omFreeBin((ADDRESS)temp0,sleftv_bin); 700 708 } 701 709 if (err) … … 1757 1765 void *args[]={idCopy(h),(void*)1,NULL}; 1758 1766 int arg_t[]={IDEAL_CMD,INT_CMD,0}; 1759 hh=(ideal)iiCallLibProcM("modStd",args,arg_t,err); 1767 leftv temp0=ii_CallLibProcM("modStd",args,arg_t,currRing,err); 1768 hh=(ideal)temp0->data; 1769 omFreeBin((ADDRESS)temp0,sleftv_bin); 1760 1770 if (err) 1761 1771 {
Note: See TracChangeset
for help on using the changeset viewer.