Overview
Comment: | Optimize message blocks that begin with a goto instruction to a label that comes before it. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
7cde381dd58b46a4a8228c41e1427047 |
User & Date: | user on 2023-03-14 20:53:42 |
Other Links: | manifest | tags |
Context
2023-03-29
| ||
03:22 | Add the variant of the {edit} macro to edit an argument of a macro which is currently being expanded. check-in: 0548d34afe user: user tags: trunk | |
2023-03-14
| ||
20:53 | Optimize message blocks that begin with a goto instruction to a label that comes before it. check-in: 7cde381dd5 user: user tags: trunk | |
2023-01-31
| ||
19:26 | Add 'mm' binding ALT with middle mouse button to write coordinates to the Misc value of MRU. check-in: 67716681cf user: user tags: trunk | |
Changes
Modified class.c from [69d6373aa3] to [f3693b1dc0].
︙ | ︙ | |||
1996 1997 1998 1999 2000 2001 2002 | } static void class_definition(int cla,sqlite3_stmt*vst) { Hash*hash=calloc(LOCAL_HASH_SIZE,sizeof(Hash)); Class*cl=classes[cla]; int ptr=0; int compat=0; | | | 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 | } static void class_definition(int cla,sqlite3_stmt*vst) { Hash*hash=calloc(LOCAL_HASH_SIZE,sizeof(Hash)); Class*cl=classes[cla]; int ptr=0; int compat=0; int i,j; char disp=0; if(!hash) fatal("Allocation failed\n"); if(!cl) fatal("Confusion of class definition somehow\n"); if(cl->cflags&(CF_NOCLASS1|CF_NOCLASS2)) { cl->cflags=0; } else { ParseError("Duplicate definition of class $%s\n",cl->name); |
︙ | ︙ | |||
2139 2140 2141 2142 2143 2144 2145 | cl->codes[cl->messages[MSG_KEY]+i]=ptr; if(cl->cflags&CF_INPUT) keymask[i>>3]|=1<<(i&7); } cl->codes[ptr++]=OP_QUEEN; ptr=parse_instructions(cla,ptr,hash,compat); break; case 0x0200 ... 0x02FF: | | < | > > | > > > > > > > > > > | 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 | cl->codes[cl->messages[MSG_KEY]+i]=ptr; if(cl->cflags&CF_INPUT) keymask[i>>3]|=1<<(i&7); } cl->codes[ptr++]=OP_QUEEN; ptr=parse_instructions(cla,ptr,hash,compat); break; case 0x0200 ... 0x02FF: i=tokenv&255; goto message; case 0xC000 ... 0xFFFF: i=tokenv+256-0xC000; message: set_message_ptr(cla,i,ptr); nxttok(); pushback=1; if(tokenv==OP_LABEL && tokent==(TF_NAME|TF_ABNORMAL|TF_EQUAL)) { j=look_hash(hash,LOCAL_HASH_SIZE,0x8000,0xFFFF,*labelptr,"labels"); if(!j) j=*labelptr,++*labelptr; if(labelptr[j-0x8000]!=0xFFFF) { set_message_ptr(cla,i,labelptr[j-0x8000]); pushback=0; } } ptr=parse_instructions(cla,ptr,hash,compat); break; default: ParseError("Invalid directly inside of a class definition\n"); } } else { ParseError("Invalid directly inside of a class definition\n"); } |
︙ | ︙ |