Menu

#16 Bug in (FINDM)

v6.11.xx
closed-fixed
System (15)
5
2005-03-28
2003-07-19
Dirk Busch
No

> -----Original Message-----
> From: George [mailto:george@tvhifi-microtec.co.uk]
> Sent: 12 July 2003 13:31
> To: win32forth@yahoogroups.com
> Subject: [win32forth] Bug in (FINDM)
>
>
> The following exeception was generated by WinEd
V2.15c on loading a new
> file
>
> EXCEPTION 0xC0000005 ACCESS_VIOLATION
> Kernel 502A origin 00000000
> Registers: (absolute) (relative)
> Eax: 00075E40 FF805E40
> Ebx: TOS 00031248 FF7C1248 top of stack
> Ecx: 00075E5C FF805E5C
> Edx: USER 00101748 FF891748 user area
> Esi: IP 008849E8 000149E8 Forth ip
> Edi: IMAGE 00870000 00000000 base address
> Esp: SP@ 00649B2C FFDD9B2C stack ptr
> Ebp: RP@ 0064AA9C FFDDAA9C rstack ptr
> Eip: PC 00872ACA 00002ACA machine ip
> Access addr: 0097174C 0010174C READ violation
>
> with a little detective work I sussed out that it's
caused by >name
>
> see >name
> DEFER >NAME IS
> _>NAME IS CODE
> 2A9C 52 push edx
> 2A9D EB06 jmp 2AA5 ( _>NAME :
0x9 )
> 2A9F C7C3902A0000 mov ebx, # 2A90
> 2AA5 C7C0102A0000 mov eax, # 2A10
> 2AAB 8B0438 mov eax, [eax] [edi]
> 2AAE 0BC0 or eax, eax
> 2AB0 74ED je 2A9F ( _>NAME :
0x3 )
> 2AB2 8B4C38FC mov ecx, FC [eax]
[edi]
> 2AB6 8D4C8804 lea ecx, 4 [eax]
[ecx*4]
> 2ABA 83E904 sub ecx, # 4
> 2ABD 3BC8 cmp ecx, eax
> 2ABF 74EA je 2AAB ( _>NAME :
0xF )
> 2AC1 8BD1 mov edx, ecx
> 2AC3 8B143A mov edx, [edx] [edi]
> 2AC6 0BD2 or edx, edx
> 2AC8 74F0 je 2ABA ( _>NAME :
0x1E )
> 2ACA 3B5C3A04 cmp ebx, 4 [edx] [edi]
> 2ACE 75F3 jne 2AC3 ( _>NAME :
0x27 )
> 2AD0 8D5AFB lea ebx, FB [edx]
> 2AD3 5A pop edx
>
> which is called by (FINDM) when it can't match a late-
bound selector to
> the current object.
>
> : (FINDM) ( SelID ^class -- m0cfa ) \ find method
in a class
> 2dup
> MFA ((findm)) if nip nip EXIT then
> nip
> S" not understood by class " tempmsg$ +place
> body> >name nfa-count tempmsg$ +place
> ^^^^^
> tempmsg$ msg ! -2 throw ;
>
> Since turnkeyed programs discard the names should
this be altered so
> that we print [UNKNOWN] if the system space is
empty (i.e. we're running
> a Turnkeyed program )
>
> George
>
>

Great work George. IMHO, the whole FIND (FIND)
(FINDM) ((FINDM)) stuff is
in need of a rehash; my prefernece is for a chain type
approach like
NUMBER (not exactly the same, it's got downsides too).

Can you raise an SF entry for this please?

--
Regards
Alex McDonald

Discussion

  • Alex McDonald

    Alex McDonald - 2004-12-11
    • status: open --> wont-fix
     
  • Dirk Busch

    Dirk Busch - 2004-12-19
    • milestone: --> v6.11.xx
    • status: wont-fix --> open
     
  • Dirk Busch

    Dirk Busch - 2005-03-28

    Logged In: YES
    user_id=787552

    I have fixed it im my local copy of version 6.11.xx.
    I'll upload it when I can get access to the CVS next time.

     
  • Dirk Busch

    Dirk Busch - 2005-03-28
    • assigned_to: alex_mcdonald --> dbu_de
    • status: open --> closed-fixed
     

Log in to post a comment.