From: George H. <geo...@us...> - 2007-04-18 09:18:43
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv30501/win32forth/src Modified Files: PRIMHASH.F Log Message: gah: Bug fix to work correctly for more than 2 method lists Index: PRIMHASH.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/PRIMHASH.F,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PRIMHASH.F 16 Apr 2007 09:07:23 -0000 1.6 --- PRIMHASH.F 18 Apr 2007 09:18:40 -0000 1.7 *************** *** 8,17 **** sys-here ' classes >body - \ voc-pfa-size ! 5 cells sys-reserve \ extra for a class ! constant voc-pfa-size ! also classes get-current definitions ! 2 constant #mlists \ Number of method lists; must be a non-zero power of 2. set-current previous --- 8,18 ---- sys-here ' classes >body - \ voc-pfa-size ! 2 dup \ for #mlists below ! 4 + cells sys-reserve \ extra for a class ! swap constant voc-pfa-size ! also classes get-current swap definitions ! constant #mlists \ Number of method lists; must be a non-zero power of 2. set-current previous *************** *** 51,55 **** @@2: next c; ! CODE ((FINDV)) ( SelID addr -- 0cfa t | f ) pop eax \ selector id @@1: mov ebx, 0 [ebx] \ follow link --- 52,56 ---- @@2: next c; ! CODE ((FINDV)) ( SelID addr -- 'ivar t | f ) pop eax \ selector id @@1: mov ebx, 0 [ebx] \ follow link *************** *** 58,62 **** cmp eax, 4 [ebx] \ selectors match? jne short @@1 ! add ebx, # 8 \ method cfa push ebx mov ebx, # -1 \ and true flag --- 59,63 ---- cmp eax, 4 [ebx] \ selectors match? jne short @@1 ! add ebx, # 8 \ ivar structure push ebx mov ebx, # -1 \ and true flag |