| 844 | } |
| 845 | |
| 846 | BOOLEAN iiAlias(leftv p) |
| 847 | { |
| 848 | if (iiCurrArgs==NULL) |
| 849 | { |
| 850 | Werror("not enough arguments for proc %s",VoiceName()); |
| 851 | p->CleanUp(); |
| 852 | return TRUE; |
| 853 | } |
| 854 | leftv h=iiCurrArgs; |
| 855 | iiCurrArgs=h->next; |
| 856 | h->next=NULL; |
| 857 | if (h->rtyp!=IDHDL) |
| 858 | { |
| 859 | BOOLEAN res=iiAssign(p,h); |
| 860 | h->CleanUp(); |
| 861 | omFreeBin((ADDRESS)h, sleftv_bin); |
| 862 | return res; |
| 863 | } |
| 864 | if ((h->Typ()!=p->Typ()) &&(p->Typ()!=DEF_CMD)) |
| 865 | { |
| 866 | WerrorS("type mismatch"); |
| 867 | return TRUE; |
| 868 | } |
| 869 | idhdl pp=(idhdl)p->data; |
| 870 | switch(pp->typ) |
| 871 | { |
| 872 | case CRING_CMD: |
| 873 | nKillChar((coeffs)pp); |
| 874 | break; |
| 875 | case DEF_CMD: |
| 876 | case INT_CMD: |
| 877 | break; |
| 878 | case INTVEC_CMD: |
| 879 | case INTMAT_CMD: |
| 880 | delete IDINTVEC(pp); |
| 881 | break; |
| 882 | case NUMBER_CMD: |
| 883 | nDelete(&IDNUMBER(pp)); |
| 884 | break; |
| 885 | case BIGINT_CMD: |
| 886 | n_Delete(&IDNUMBER(pp),coeffs_BIGINT); |
| 887 | break; |
| 888 | case MAP_CMD: |
| 889 | { |
| 890 | map im = IDMAP(pp); |
| 891 | omFreeBinAddr((ADDRESS)im->preimage); |
| 892 | im->preimage=NULL;// and continue |
| 893 | } |
| 894 | // continue as ideal: |
| 895 | case IDEAL_CMD: |
| 896 | case MODUL_CMD: |
| 897 | case MATRIX_CMD: |
| 898 | idDelete(&IDIDEAL(pp)); |
| 899 | break; |
| 900 | case PROC_CMD: |
| 901 | case RESOLUTION_CMD: |
| 902 | case STRING_CMD: |
| 903 | omFree((ADDRESS)IDSTRING(pp)); |
no test coverage detected