--------------------------------------------------------------------------------------------
[BUG/PRB.] VFP 9.0 FIX - THE MAXIMUM NUMBER OF THE RETURN VALUE OF THE VALID EVENT
January 2026
--------------------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp6, vfp7, vfp8), sometimes the Valid event returns a BIG random number, VFP will enter an infinite loop.
In VFP Advanced, if the absolute value of the return value of the Valid event > the maximum number of the return value of the Valid event,
VFP will reset the return value of the Valid event to 1, the next control will get the focus.
The bug occurs in the Valid event for the following controls:
CheckBox control
ComboBox control
CommandButton control
CommandGroup control
EditBox control
Grid control
ListBox control
OptionButton control
OptionGroup control
Spinner control
TextBox control
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Fun8ce3bc :: ; proc near
push ebp ;0x008ce3bc : 55
lea ebp , dword ptr [ esp - 96 ] ;0x008ce3bd : 8d6c24a0
sub esp , 094h ;0x008ce3c1 : 81ec94000000
mov eax , dword ptr [ ebp + 112 ] ;0x008ce3c7 : 8b4570
push ebx ;0x008ce3ca : 53
xor ebx , ebx ;0x008ce3cb : 33db
cmp eax , ebx ;0x008ce3cd : 3bc3
push esi ;0x008ce3cf : 56
push edi ;0x008ce3d0 : 57
mov edi , dword ptr [ ebp + 108 ] ;0x008ce3d1 : 8b7d6c
mov dword ptr [ ebp + 84 ] , ebx ;0x008ce3d4 : 895d54
mov dword ptr [ ebp + 80 ] , ebx ;0x008ce3d7 : 895d50
mov dword ptr [ ebp + 76 ] , offset Fun7f245a ;0x008ce3da : c7454c5a247f00
jnl Label8ce3f8 ;0x008ce3e1 : 7d15
neg eax ;0x008ce3e3 : f7d8
mov dword ptr [ ebp + 76 ] , offset Label7f246d ;0x008ce3e5 : c7454c6d247f00
mov dword ptr [ ebp + 112 ] , eax ;0x008ce3ec : 894570
mov dword ptr [ ebp + 60 ] , 01h ;0x008ce3ef : c7453c01000000
jmp Label8ce3fb ;0x008ce3f6 : eb03
Label8ce3f8 ::
mov dword ptr [ ebp + 60 ] , ebx ;0x008ce3f8 : 895d3c
Label8ce3fb ::
cmp dword ptr [ ebp + 116 ] , ebx ;0x008ce3fb : 395d74
je Label8ce4da ;0x008ce3fe : 0f84d6000000
mov esi , 032Fh ;0x008ce404 : be2f030000
mov eax , edi ;0x008ce409 : 8bc7
call Fun5261a1 ;0x008ce40b : e8917dc5ff
mov edx , dword ptr [ Data9388d8 ] ;0x008ce410 : 8b15d8889300
mov esi , eax ;0x008ce416 : 8bf0
cmp esi , ebx ;0x008ce418 : 3bf3
mov dword ptr [ ebp + 92 ] , esi ;0x008ce41a : 89755c
je Label8ce43c ;0x008ce41d : 741d
xor ecx , ecx ;0x008ce41f : 33c9
lea eax , dword ptr [ edx - 1 ] ;0x008ce421 : 8d42ff
cmp eax , ebx ;0x008ce424 : 3bc3
setle cl ;0x008ce426 : 0f9ec1
dec ecx ;0x008ce429 : 49
and eax , ecx ;0x008ce42a : 23c1
cmp esi , dword ptr [ 4 * eax + offset Data93d720 ] ;0x008ce42c : 3b348520d79300
jne Label8ce43c ;0x008ce433 : 7507
mov dword ptr [ ebp + 80 ] , 010h ;0x008ce435 : c7455010000000
Label8ce43c ::
cmp edx , ebx ;0x008ce43c : 3bd3
mov ecx , dword ptr [ Data938308 ] ;0x008ce43e : 8b0d08839300
je Label8ce467 ;0x008ce444 : 7421
cmp ecx , ebx ;0x008ce446 : 3bcb
jle Label8ce467 ;0x008ce448 : 7e1d
lea eax , dword ptr [ edx - 1 ] ;0x008ce44a : 8d42ff
xor edx , edx ;0x008ce44d : 33d2
cmp eax , ebx ;0x008ce44f : 3bc3
setle dl ;0x008ce451 : 0f9ec2
dec edx ;0x008ce454 : 4a
and eax , edx ;0x008ce455 : 23c2
cmp esi , dword ptr [ 4 * eax + offset Data93d720 ] ;0x008ce457 : 3b348520d79300
jne Label8ce467 ;0x008ce45e : 7507
mov eax , 01h ;0x008ce460 : b801000000
jmp Label8ce469 ;0x008ce465 : eb02
Label8ce467 ::
xor eax , eax ;0x008ce467 : 33c0
Label8ce469 ::
cmp eax , ebx ;0x008ce469 : 3bc3
je Label8ce4a9 ;0x008ce46b : 743c
cmp ecx , 01h ;0x008ce46d : 83f901
mov dword ptr [ ebp + 112 ] , ecx ;0x008ce470 : 894d70
jg Label8ce47c ;0x008ce473 : 7f07
mov dword ptr [ ebp + 112 ] , 01h ;0x008ce475 : c7457001000000
Label8ce47c ::
mov edi , esi ;0x008ce47c : 8bfe
pushd 00h ;0x008ce47e : 6a00
mov edx , 0135h ;0x008ce480 : ba35010000
mov ecx , esi ;0x008ce485 : 8bce
mov dword ptr [ Data938308 ] , 0FFFFFFFFh ;0x008ce487 : c70508839300ffffffff
mov dword ptr [ ebp + 108 ] , edi ;0x008ce491 : 897d6c
call Fun436ddb ;0x008ce494 : e84289b6ff
mov dword ptr [ ebp + 88 ] , eax ;0x008ce499 : 894558
or dword ptr [ ebp + 80 ] , 02h ;0x008ce49c : 834d5002
mov dword ptr [ ebp + 76 ] , offset Fun7f245a ;0x008ce4a0 : c7454c5a247f00
jmp Label8ce4e9 ;0x008ce4a7 : eb40
Label8ce4a9 ::
cmp esi , ebx ;0x008ce4a9 : 3bf3
jne Label8ce4c7 ;0x008ce4ab : 751a
mov esi , 0332h ;0x008ce4ad : be32030000
mov eax , edi ;0x008ce4b2 : 8bc7
mov dword ptr [ ebp + 88 ] , 01h ;0x008ce4b4 : c7455801000000
call Fun5261a1 ;0x008ce4bb : e8e17cc5ff
mov esi , eax ;0x008ce4c0 : 8bf0
mov dword ptr [ ebp + 92 ] , esi ;0x008ce4c2 : 89755c
jmp Label8ce4e9 ;0x008ce4c5 : eb22
Label8ce4c7 ::
pushd 00h ;0x008ce4c7 : 6a00
mov edx , 0135h ;0x008ce4c9 : ba35010000
mov ecx , esi ;0x008ce4ce : 8bce
call Fun436ddb ;0x008ce4d0 : e80689b6ff
mov dword ptr [ ebp + 88 ] , eax ;0x008ce4d5 : 894558
jmp Label8ce4e9 ;0x008ce4d8 : eb0f
Label8ce4da ::
mov eax , dword ptr [ ebp + 104 ] ;0x008ce4da : 8b4568
mov dword ptr [ ebp + 88 ] , 01h ;0x008ce4dd : c7455801000000
mov dword ptr [ ebp + 92 ] , eax ;0x008ce4e4 : 89455c
mov esi , eax ;0x008ce4e7 : 8bf0
Label8ce4e9 ::
mov ebx , dword ptr [ ebp + 104 ] ;0x008ce4e9 : 8b5d68
cmp edi , ebx ;0x008ce4ec : 3bfb
je Label8ce4f9 ;0x008ce4ee : 7409
cmp edi , esi ;0x008ce4f0 : 3bfe
je Label8ce4f9 ;0x008ce4f2 : 7405
mov dword ptr [ ebp + 84 ] , edi ;0x008ce4f4 : 897d54
jmp Label8ce4fe ;0x008ce4f7 : eb05
Label8ce4f9 ::
mov edi , esi ;0x008ce4f9 : 8bfe
mov dword ptr [ ebp + 108 ] , edi ;0x008ce4fb : 897d6c
Label8ce4fe ::
mov ecx , dword ptr [ ebp + 116 ] ;0x008ce4fe : 8b4d74
xor eax , eax ;0x008ce501 : 33c0
cmp ecx , eax ;0x008ce503 : 3bc8
mov dword ptr [ ebp + 68 ] , eax ;0x008ce505 : 894544
mov dword ptr [ ebp + 72 ] , eax ;0x008ce508 : 894548
je Label8ce553 ;0x008ce50b : 7446
push eax ;0x008ce50d : 50
mov edx , 01D8h ;0x008ce50e : bad8010000
mov ecx , ebx ;0x008ce513 : 8bcb
call Fun436ddb ;0x008ce515 : e8c188b6ff
pushd 0FFFFFFFFh ;0x008ce51a : 6aff
pushd 04h ;0x008ce51c : 6a04
mov dword ptr [ ebp + 68 ] , eax ;0x008ce51e : 894544
mov dword ptr [ ebp + 72 ] , eax ;0x008ce521 : 894548
mov eax , dword ptr [ Data9388dc ] ;0x008ce524 : a1dc889300
lea ecx , dword ptr [ ebp + 40 ] ;0x008ce529 : 8d4d28
push ecx ;0x008ce52c : 51
lea edx , dword ptr [ ebx + 4 * ebx ] ;0x008ce52d : 8d149b
shl edx , 05h ;0x008ce530 : c1e205
mov ecx , dword ptr [ edx + eax + 116 ] ;0x008ce533 : 8b4c0274
push ecx ;0x008ce537 : 51
pushd 00h ;0x008ce538 : 6a00
pushd 0FFFFFFFFh ;0x008ce53a : 6aff
pushd 01D8h ;0x008ce53c : 68d8010000
push ebx ;0x008ce541 : 53
mov dword ptr [ ebp + 40 ] , 00h ;0x008ce542 : c7452800000000
call Fun41c715 ;0x008ce549 : e8c7e1b4ff
add esp , 020h ;0x008ce54e : 83c420
xor eax , eax ;0x008ce551 : 33c0
Label8ce553 ::
mov ebx , dword ptr [ Data9388dc ] ;0x008ce553 : 8b1ddc889300
mov dword ptr [ ebp + 64 ] , eax ;0x008ce559 : 894540
Label8ce55c ::
mov eax , dword ptr [ ebp + 68 ] ;0x008ce55c : 8b4544
test eax , eax ;0x008ce55f : 85c0
je Label8ce5e0 ;0x008ce561 : 747d
mov eax , dword ptr [ ebp + 112 ] ;0x008ce563 : 8b4570
cmp eax , 01h ;0x008ce566 : 83f801
je Label8ce570 ;0x008ce569 : 7405
cmp eax , 0FFFFFFFFh ;0x008ce56b : 83f8ff
jne Label8ce5e0 ;0x008ce56e : 7570
Label8ce570 ::
cmp dword ptr [ Data939528 ] , 01h ;0x008ce570 : 833d2895930001
jne Label8ce5d9 ;0x008ce577 : 7560
mov eax , dword ptr [ ebp + 84 ] ;0x008ce579 : 8b4554
test eax , eax ;0x008ce57c : 85c0
je Label8ce5d9 ;0x008ce57e : 7459
lea edx , dword ptr [ eax + 4 * eax ] ;0x008ce580 : 8d1480
shl edx , 05h ;0x008ce583 : c1e205
mov eax , dword ptr [ ebx + edx + 24 ] ;0x008ce586 : 8b441318
test eax , eax ;0x008ce58a : 85c0
je Label8ce5d9 ;0x008ce58c : 744b
mov edx , 034Ah ;0x008ce58e : ba4a030000
Label8ce593 ::
lea ecx , dword ptr [ eax + 4 * eax ] ;0x008ce593 : 8d0c80
shl ecx , 05h ;0x008ce596 : c1e105
add ecx , ebx ;0x008ce599 : 03cb
cmp word ptr [ ecx + 16 ] , dx ;0x008ce59b : 66395110
je Label8ce5a8 ;0x008ce59f : 7407
mov eax , dword ptr [ ecx + 24 ] ;0x008ce5a1 : 8b4118
test eax , eax ;0x008ce5a4 : 85c0
jne Label8ce593 ;0x008ce5a6 : 75eb
Label8ce5a8 ::
test eax , eax ;0x008ce5a8 : 85c0
je Label8ce5d9 ;0x008ce5aa : 742d
mov ecx , dword ptr [ ebp + 60 ] ;0x008ce5ac : 8b4d3c
lea edx , dword ptr [ eax + 4 * eax ] ;0x008ce5af : 8d1480
shl edx , 05h ;0x008ce5b2 : c1e205
mov eax , dword ptr [ edx + ebx + 92 ] ;0x008ce5b5 : 8b441a5c
xor edi , edi ;0x008ce5b9 : 33ff
test ecx , ecx ;0x008ce5bb : 85c9
jne Label8ce5cd ;0x008ce5bd : 750e
test eax , eax ;0x008ce5bf : 85c0
je Label8ce5d6 ;0x008ce5c1 : 7413
mov eax , dword ptr [eax] ;0x008ce5c3 : 8b00
mov ecx , dword ptr [eax] ;0x008ce5c5 : 8b08
mov edi , dword ptr [ eax + 4 * ecx + 4 ] ;0x008ce5c7 : 8b7c8804
jmp Label8ce5d6 ;0x008ce5cb : eb09
Label8ce5cd ::
test eax , eax ;0x008ce5cd : 85c0
je Label8ce5d6 ;0x008ce5cf : 7405
mov eax , dword ptr [eax] ;0x008ce5d1 : 8b00
mov edi , dword ptr [ eax + 8 ] ;0x008ce5d3 : 8b7808
Label8ce5d6 ::
mov dword ptr [ ebp + 108 ] , edi ;0x008ce5d6 : 897d6c
Label8ce5d9 ::
mov dword ptr [ ebp + 68 ] , 00h ;0x008ce5d9 : c7454400000000
Label8ce5e0 ::
test edi , edi ;0x008ce5e0 : 85ff
mov dword ptr [ ebp + 44 ] , edi ;0x008ce5e2 : 897d2c
je Label8ce61b ;0x008ce5e5 : 7434
mov esi , dword ptr [ ebp + 80 ] ;0x008ce5e7 : 8b7550
Label8ce5ea ::
mov eax , dword ptr [ ebp + 112 ] ;0x008ce5ea : 8b4570
;
; ---------------------------------------------------------------------------------
; VFP 9.0 FIX - THE MAXIMUM NUMBER OF THE RETURN VALUE OF THE VALID EVENT
; December 2024
; ---------------------------------------------------------------------------------
; CCB
;
; In vfp9, sometimes the Valid event returns a BIG random number,
; VFP will enter an infinite loop.
; In VFP Advanced, if the absolute value of the return value of the Valid event > the maximum number of the return value of the Valid event,
; VFP will reset the return value of the Valid event to 1, the next control will get the focus.
;
; 2024/12/14, by ccb
;
test eax,eax
jl Label8ce61b
cmp eax,dword ptr vfpa_sys9177_data
jle Label8ce5ed
mov eax,01h
Label8ce5ed ::
mov ecx , eax ;0x008ce5ed : 8bc8
dec eax ;0x008ce5ef : 48
test ecx , ecx ;0x008ce5f0 : 85c9
mov dword ptr [ ebp + 112 ] , eax ;0x008ce5f2 : 894570
je Label8ce61b ;0x008ce5f5 : 7424
mov eax , dword ptr [ ebp + 88 ] ;0x008ce5f7 : 8b4558
test eax , eax ;0x008ce5fa : 85c0
mov eax , esi ;0x008ce5fc : 8bc6
je Label8ce603 ;0x008ce5fe : 7403
or eax , 01h ;0x008ce600 : 83c801
Label8ce603 ::
mov ecx , dword ptr [ ebp + 92 ] ;0x008ce603 : 8b4d5c
push eax ;0x008ce606 : 50
mov edx , edi ;0x008ce607 : 8bd7
call dword ptr [ ebp + 76 ] ;0x008ce609 : ff554c
mov ebx , dword ptr [ Data9388dc ] ;0x008ce60c : 8b1ddc889300
mov edi , eax ;0x008ce612 : 8bf8
test edi , edi ;0x008ce614 : 85ff
mov dword ptr [ ebp + 108 ] , edi ;0x008ce616 : 897d6c
jne Label8ce5ea ;0x008ce619 : 75cf
Label8ce61b ::
xor eax , eax ;0x008ce61b : 33c0
cmp edi , eax ;0x008ce61d : 3bf8
mov dword ptr [ ebp + 112 ] , 01h ;0x008ce61f : c7457001000000
mov dword ptr [ ebp + 52 ] , eax ;0x008ce626 : 894534
mov dword ptr [ ebp + 56 ] , eax ;0x008ce629 : 894538
je Label8ce72f ;0x008ce62c : 0f84fd000000
mov eax , dword ptr [ ebp + 72 ] ;0x008ce632 : 8b4548
test eax , eax ;0x008ce635 : 85c0
je Label8ce657 ;0x008ce637 : 741e
lea edx , dword ptr [ edi + 4 * edi ] ;0x008ce639 : 8d14bf
shl edx , 05h ;0x008ce63c : c1e205
cmp word ptr [ edx + ebx + 16 ] , 033Ah ;0x008ce63f : 66817c1a103a03
lea eax , dword ptr [ edx + ebx ] ;0x008ce646 : 8d041a
jne Label8ce657 ;0x008ce649 : 750c
mov eax , dword ptr [ eax + 108 ] ;0x008ce64b : 8b406c
mov eax , dword ptr [eax] ;0x008ce64e : 8b00
or dword ptr [ eax + 96 ] , 010000h ;0x008ce650 : 81486000000100
Label8ce657 ::
mov eax , dword ptr [ Data9370e8 ] ;0x008ce657 : a1e8709300
mov ecx , dword ptr [ Data937220 ] ;0x008ce65c : 8b0d20729300
mov dword ptr [ ebp + 24 ] , eax ;0x008ce662 : 894518
test byte ptr [ eax + 28 ] , 08h ;0x008ce665 : f6401c08
mov dword ptr [ ebp + 48 ] , ecx ;0x008ce669 : 894d30
je Label8ce67a ;0x008ce66c : 740c
Label8ce66e ::
sub eax , 038h ;0x008ce66e : 83e838
mov dword ptr [ ebp + 24 ] , eax ;0x008ce671 : 894518
test byte ptr [ eax + 28 ] , 08h ;0x008ce674 : f6401c08
jne Label8ce66e ;0x008ce678 : 75f4
Label8ce67a ::
mov edx , dword ptr [ Data9370f0 ] ;0x008ce67a : 8b15f0709300
mov eax , dword ptr [ Data9370ec ] ;0x008ce680 : a1ec709300
mov dword ptr [ ebp + 28 ] , ecx ;0x008ce685 : 894d1c
lea ecx , dword ptr [ ebp - 48 ] ;0x008ce688 : 8d4dd0
mov dword ptr [ ebp + 16 ] , edx ;0x008ce68b : 895510
mov edx , ecx ;0x008ce68e : 8bd1
pushd 00h ;0x008ce690 : 6a00
push edx ;0x008ce692 : 52
mov dword ptr [ ebp + 20 ] , eax ;0x008ce693 : 894514
mov dword ptr [ Data937220 ] , ecx ;0x008ce696 : 890d20729300
call Fun42c2be ;0x008ce69c : e81ddcb5ff
mov edi , dword ptr [ ebp + 108 ] ;0x008ce6a1 : 8b7d6c
mov esi , eax ;0x008ce6a4 : 8bf0
add esp , 08h ;0x008ce6a6 : 83c408
test esi , esi ;0x008ce6a9 : 85f6
jne Label8ce6ba ;0x008ce6ab : 750d
lea eax , dword ptr [ ebp + 32 ] ;0x008ce6ad : 8d4520
push eax ;0x008ce6b0 : 50
push edi ;0x008ce6b1 : 57
call Fun47f58f ;0x008ce6b2 : e8d80ebbff
mov dword ptr [ ebp + 56 ] , eax ;0x008ce6b7 : 894538
Label8ce6ba ::
mov eax , dword ptr [ Data937220 ] ;0x008ce6ba : a120729300
lea ecx , dword ptr [ ebp - 48 ] ;0x008ce6bf : 8d4dd0
cmp ecx , eax ;0x008ce6c2 : 3bc8
je Label8ce6d0 ;0x008ce6c4 : 740a
mov ecx , 0Eh ;0x008ce6c6 : b90e000000
call Fun544742 ;0x008ce6cb : e87260c7ff
Label8ce6d0 ::
mov edx , dword ptr [ Data937220 ] ;0x008ce6d0 : 8b1520729300
mov eax , dword ptr [ edx + 76 ] ;0x008ce6d6 : 8b424c
cmp dword ptr [ ebp + 48 ] , eax ;0x008ce6d9 : 394530
mov dword ptr [ Data937220 ] , eax ;0x008ce6dc : a320729300
je Label8ce6ed ;0x008ce6e1 : 740a
mov ecx , 0Eh ;0x008ce6e3 : b90e000000
call Fun544742 ;0x008ce6e8 : e85560c7ff
Label8ce6ed ::
mov eax , dword ptr [ ebp + 32 ] ;0x008ce6ed : 8b4520
test eax , eax ;0x008ce6f0 : 85c0
mov ebx , dword ptr [ Data9388dc ] ;0x008ce6f2 : 8b1ddc889300
je Label8ce701 ;0x008ce6f8 : 7407
xor edi , edi ;0x008ce6fa : 33ff
mov dword ptr [ ebp + 108 ] , edi ;0x008ce6fc : 897d6c
jmp Label8ce724 ;0x008ce6ff : eb23
Label8ce701 ::
mov eax , dword ptr [ ebp + 72 ] ;0x008ce701 : 8b4548
test eax , eax ;0x008ce704 : 85c0
je Label8ce724 ;0x008ce706 : 741c
lea eax , dword ptr [ edi + 4 * edi ] ;0x008ce708 : 8d04bf
shl eax , 05h ;0x008ce70b : c1e005
add eax , ebx ;0x008ce70e : 03c3
cmp word ptr [ eax + 16 ] , 033Ah ;0x008ce710 : 668178103a03
jne Label8ce724 ;0x008ce716 : 750c
mov ecx , dword ptr [ eax + 108 ] ;0x008ce718 : 8b486c
mov eax , dword ptr [ecx] ;0x008ce71b : 8b01
and dword ptr [ eax + 96 ] , 0FFFEFFFFh ;0x008ce71d : 816060fffffeff
Label8ce724 ::
test esi , esi ;0x008ce724 : 85f6
je Label8ce72f ;0x008ce726 : 7407
mov ecx , esi ;0x008ce728 : 8bce
call Fun544742 ;0x008ce72a : e81360c7ff
Label8ce72f ::
test edi , edi ;0x008ce72f : 85ff
je Label8ce75e ;0x008ce731 : 742b
mov eax , dword ptr [ ebp + 56 ] ;0x008ce733 : 8b4538
test eax , eax ;0x008ce736 : 85c0
je Label8ce75e ;0x008ce738 : 7424
mov eax , dword ptr [ Data939528 ] ;0x008ce73a : a128959300
cmp eax , 01h ;0x008ce73f : 83f801
je Label8ce7aa ;0x008ce742 : 7466
test eax , eax ;0x008ce744 : 85c0
je Label8ce7aa ;0x008ce746 : 7462
cmp eax , 02h ;0x008ce748 : 83f802
jne Label8ce75e ;0x008ce74b : 7511
mov ecx , edi ;0x008ce74d : 8bcf
call Fun4da504 ;0x008ce74f : e8b0bdc0ff
test eax , eax ;0x008ce754 : 85c0
jne Label8ce7aa ;0x008ce756 : 7552
mov ebx , dword ptr [ Data9388dc ] ;0x008ce758 : 8b1ddc889300
Label8ce75e ::
cmp edi , dword ptr [ ebp + 44 ] ;0x008ce75e : 3b7d2c
je Label8ce7d1 ;0x008ce761 : 746e
cmp dword ptr [ Data939528 ] , 02h ;0x008ce763 : 833d2895930002
jne Label8ce771 ;0x008ce76a : 7505
cmp edi , dword ptr [ ebp + 64 ] ;0x008ce76c : 3b7d40
je Label8ce7d8 ;0x008ce76f : 7467
Label8ce771 ::
test edi , edi ;0x008ce771 : 85ff
je Label8ce786 ;0x008ce773 : 7411
mov eax , dword ptr [ ebp + 84 ] ;0x008ce775 : 8b4554
test eax , eax ;0x008ce778 : 85c0
jne Label8ce786 ;0x008ce77a : 750a
mov dword ptr [ ebp + 84 ] , edi ;0x008ce77c : 897d54
mov dword ptr [ ebp + 52 ] , 01h ;0x008ce77f : c7453401000000
Label8ce786 ::
mov eax , dword ptr [ ebp + 64 ] ;0x008ce786 : 8b4540
test eax , eax ;0x008ce789 : 85c0
jne Label8ce790 ;0x008ce78b : 7503
mov dword ptr [ ebp + 64 ] , edi ;0x008ce78d : 897d40
Label8ce790 ::
mov eax , dword ptr [ ebp + 52 ] ;0x008ce790 : 8b4534
test eax , eax ;0x008ce793 : 85c0
jne Label8ce55c ;0x008ce795 : 0f85c1fdffff
test edi , edi ;0x008ce79b : 85ff
je Label8ce7dd ;0x008ce79d : 743e
cmp edi , dword ptr [ ebp + 84 ] ;0x008ce79f : 3b7d54
jne Label8ce55c ;0x008ce7a2 : 0f85b4fdffff
jmp Label8ce7dd ;0x008ce7a8 : eb33
Label8ce7aa ::
pushd 00h ;0x008ce7aa : 6a00
pushd 00h ;0x008ce7ac : 6a00
pushd 00h ;0x008ce7ae : 6a00
pushd 01h ;0x008ce7b0 : 6a01
pushd 00h ;0x008ce7b2 : 6a00
pushd 01C7h ;0x008ce7b4 : 68c7010000
push edi ;0x008ce7b9 : 57
call Fun43c117 ;0x008ce7ba : e858d9b6ff
mov ebx , dword ptr [ ebp + 120 ] ;0x008ce7bf : 8b5d78
pushd 00h ;0x008ce7c2 : 6a00
call Fun4da517 ;0x008ce7c4 : e84ebdc0ff
mov ebx , dword ptr [ Data9388dc ] ;0x008ce7c9 : 8b1ddc889300
jmp Label8ce7dd ;0x008ce7cf : eb0c
Label8ce7d1 ::
xor edi , edi ;0x008ce7d1 : 33ff
mov dword ptr [ ebp + 88 ] , edi ;0x008ce7d3 : 897d58
jmp Label8ce7da ;0x008ce7d6 : eb02
Label8ce7d8 ::
xor edi , edi ;0x008ce7d8 : 33ff
Label8ce7da ::
mov dword ptr [ ebp + 108 ] , edi ;0x008ce7da : 897d6c
Label8ce7dd ::
mov eax , dword ptr [ ebp + 116 ] ;0x008ce7dd : 8b4574
test eax , eax ;0x008ce7e0 : 85c0
je Label8ce87f ;0x008ce7e2 : 0f8497000000
test edi , edi ;0x008ce7e8 : 85ff
jne Label8ce87f ;0x008ce7ea : 0f858f000000
mov edi , dword ptr [ ebp + 88 ] ;0x008ce7f0 : 8b7d58
test edi , edi ;0x008ce7f3 : 85ff
je Label8ce819 ;0x008ce7f5 : 7422
mov eax , dword ptr [ Data9388d8 ] ;0x008ce7f7 : a1d8889300
test eax , eax ;0x008ce7fc : 85c0
je Label8ce87f ;0x008ce7fe : 747f
mov esi , dword ptr [ ebp + 92 ] ;0x008ce800 : 8b755c
dec eax ;0x008ce803 : 48
xor edx , edx ;0x008ce804 : 33d2
test eax , eax ;0x008ce806 : 85c0
setle dl ;0x008ce808 : 0f9ec2
dec edx ;0x008ce80b : 4a
and eax , edx ;0x008ce80c : 23c2
cmp esi , dword ptr [ 4 * eax + offset Data93d720 ] ;0x008ce80e : 3b348520d79300
jne Label8ce87f ;0x008ce815 : 7568
jmp Label8ce81c ;0x008ce817 : eb03
Label8ce819 ::
mov esi , dword ptr [ ebp + 92 ] ;0x008ce819 : 8b755c
Label8ce81c ::
cmp dword ptr [ Data939528 ] , 02h ;0x008ce81c : 833d2895930002
jne Label8ce853 ;0x008ce823 : 752e
mov eax , dword ptr [ ebp + 104 ] ;0x008ce825 : 8b4568
mov dword ptr [ Data939528 ] , 01h ;0x008ce828 : c7052895930001000000
call Fun7f2480 ;0x008ce832 : e8493cf2ff
test eax , eax ;0x008ce837 : 85c0
mov dword ptr [ ebp + 108 ] , eax ;0x008ce839 : 89456c
mov dword ptr [ Data939528 ] , 02h ;0x008ce83c : c7052895930002000000
je Label8ce853 ;0x008ce846 : 740b
test edi , edi ;0x008ce848 : 85ff
jne Label8ce87f ;0x008ce84a : 7533
mov eax , dword ptr [ ebp + 124 ] ;0x008ce84c : 8b457c
test eax , eax ;0x008ce84f : 85c0
je Label8ce87f ;0x008ce851 : 742c
Label8ce853 ::
pushd 0FFFFFFFFh ;0x008ce853 : 6aff
pushd 04h ;0x008ce855 : 6a04
lea ecx , dword ptr [ esi + 4 * esi ] ;0x008ce857 : 8d0cb6
lea eax , dword ptr [ ebp + 36 ] ;0x008ce85a : 8d4524
push eax ;0x008ce85d : 50
shl ecx , 05h ;0x008ce85e : c1e105
mov dword ptr [ ebp + 36 ] , 01h ;0x008ce861 : c7452401000000
mov edx , dword ptr [ ebx + ecx + 116 ] ;0x008ce868 : 8b540b74
push edx ;0x008ce86c : 52
pushd 00h ;0x008ce86d : 6a00
pushd 0FFFFFFFFh ;0x008ce86f : 6aff
pushd 01B9h ;0x008ce871 : 68b9010000
push esi ;0x008ce876 : 56
call Fun41c715 ;0x008ce877 : e899deb4ff
add esp , 020h ;0x008ce87c : 83c420
Label8ce87f ::
pop edi ;0x008ce87f : 5f
pop esi ;0x008ce880 : 5e
pop ebx ;0x008ce881 : 5b
add ebp , 060h ;0x008ce882 : 83c560
mov esp , ebp ;0x008ce885 : 8be5
pop ebp ;0x008ce887 : 5d
ret 018h ;0x008ce888 : c21800
4. APPLIES TO:
VFP 6.0.8167.0
VFP 6.0.8961.0 (SP5)
VFP 7.0.0.9262
VFP 7.0.0.9465 (SP1)
VFP 8.0.0.2521
VFP 8.0.0.3117 (SP1)
VFP 9.0.0.2412
VFP 9.0.0.3504 (SP1)
VFP 9.0.0.4611 (SP2)
VFP 9.0.0.5015 (SP2)
VFP 9.0.0.5411 (SP2)
VFP 9.0.0.5721 (SP2)
VFP 9.0.0.5815 (SP2)
VFP 9.0.0.6303 (SP2)
VFP 9.0.0.6602 (SP2)
VFP 9.0.0.7423 (SP2)
The bug has been fixed in VFP Advanced.
5. REFERENCE WEBSITES:
1, baiyujia.com:
http://www.baiyujia.com
http://www.baiyujia.com/vfpdocuments/f_vfp9fix365.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix16.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix367.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix368.asp
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|