-----------------------------------------------------------------------------------------------------
[ENHANCED] VFP 9.0 FIX - THE DEFAULT VALUE FOR THE PROGCACHE TERM IN THE CONFIGURATION FILE
January 2025
-----------------------------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9, the default value is 144 pages (9 MB) for the PROGCACHE term in the configuration file,
now the default value is 1024 pages (64 MB) for the PROGCACHE term in the configuration file.
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Fun4061e7 :: ; proc near
push ebp ;0x004061e7 : 55
mov ebp , esp ;0x004061e8 : 8bec
sub esp , 090h ;0x004061ea : 81ec90000000
push ebx ;0x004061f0 : 53
push esi ;0x004061f1 : 56
push edi ;0x004061f2 : 57
lea edx , dword ptr [ ebp - 12 ] ;0x004061f3 : 8d55f4
lea eax , dword ptr [ ebp + 0FFFFFF74h ] ;0x004061f6 : 8d8574ffffff
call Fun42c27f ;0x004061fc : e87e600200
xor esi , esi ;0x00406201 : 33f6
push esi ;0x00406203 : 56
push eax ;0x00406204 : 50
call Fun42c2be ;0x00406205 : e8b4600200
cmp eax , esi ;0x0040620a : 3bc6
pop ecx ;0x0040620c : 59
pop ecx ;0x0040620d : 59
mov dword ptr [ ebp - 8 ] , eax ;0x0040620e : 8945f8
jne Label406320 ;0x00406211 : 0f8509010000
call Fun40633f ;0x00406217 : e823010000
call Fun406405 ;0x0040621c : e8e4010000
cmp dword ptr [ Data93a88c ] , esi ;0x00406221 : 39358ca89300
jne Label40625f ;0x00406227 : 7536
push esi ;0x00406229 : 56
push esi ;0x0040622a : 56
pushd offset Label54df78 ;0x0040622b : 6878df5400
pushd offset Data93a88c ;0x00406230 : 688ca89300
call Fun406452 ;0x00406235 : e818020000
test eax , eax ;0x0040623a : 85c0
jne Label5782fd ;0x0040623c : 0f85bb201700
inc eax ;0x00406242 : 40
pushd offset Data9181b8 ;0x00406243 : 68b8819100
mov dword ptr [ Data931e14 ] , eax ;0x00406248 : a3141e9300
call Fun406458 ;0x0040624d : e806020000
cmp eax , 0FFFFFFFFh ;0x00406252 : 83f8ff
je Label40625f ;0x00406255 : 7408
pushd 050h ;0x00406257 : 6a50
push eax ;0x00406259 : 50
call Fun43d5b3 ;0x0040625a : e854730300
Label40625f ::
mov edi , 080h ;0x0040625f : bf80000000
call Fun4068c6 ;0x00406264 : e85d060000
xor ecx , ecx ;0x00406269 : 33c9
inc ecx ;0x0040626b : 41
call Fun42e42c ;0x0040626c : e8bb810200
call Fun40690d ;0x00406271 : e897060000
call Fun406a32 ;0x00406276 : e8b7070000
call Fun406c91 ;0x0040627b : e8110a0000
call Fun406e65 ;0x00406280 : e8e00b0000
call Fun406ea0 ;0x00406285 : e8160c0000
mov ebx , dword ptr [ ebp + 8 ] ;0x0040628a : 8b5d08
cmp dword ptr [ ebx + 0430h ] , esi ;0x0040628d : 39b330040000
jne Label57830d ;0x00406293 : 0f8574201700
Label406299 ::
call Fun409702 ;0x00406299 : e864340000
call Fun40976e ;0x0040629e : e8cb340000
call Fun409926 ;0x004062a3 : e87e360000
call Fun409acf ;0x004062a8 : e822380000
call Fun409b32 ;0x004062ad : e880380000
call Fun409bef ;0x004062b2 : e838390000
call Fun409d23 ;0x004062b7 : e8673a0000
call Fun40a000 ;0x004062bc : e83f3d0000
mov eax , ebx ;0x004062c1 : 8bc3
call Fun40a116 ;0x004062c3 : e84e3e0000
push ebx ;0x004062c8 : 53
call Fun40a140 ;0x004062c9 : e8723e0000
mov edx , dword ptr [ Data93a780 ] ;0x004062ce : 8b1580a79300
xor eax , eax ;0x004062d4 : 33c0
inc eax ;0x004062d6 : 40
;
; ------------------------------------------------------------------------------------------
; VFP 9.0 FIX - THE DEFAULT VALUE FOR THE PROGCACHE TERM IN THE CONFIGURATION FILE
; August 2023
; ------------------------------------------------------------------------------------------
; CCB
;
; In vfp9, the default value is 144 pages (9 MB) for the PROGCACHE term in the configuration file,
; now the default value is 1024 pages (64 MB) for the PROGCACHE term in the configuration file.
;
; 2023/8/5, by ccb
;
; mov ecx , 090h ;0x004062d7 : b990000000
mov ecx , 0400h ;0x004062d7 : b990000000
call Fun40a7ee ;0x004062dc : e80d450000
call Fun40a8a2 ;0x004062e1 : e8bc450000
call Fun40a9e4 ;0x004062e6 : e8f9460000
push ebx ;0x004062eb : 53
call Fun40aae9 ;0x004062ec : e8f8470000
call Fun40b071 ;0x004062f1 : e87b4d0000
call Fun40b0aa ;0x004062f6 : e8af4d0000
call Fun40bee8 ;0x004062fb : e8e85b0000
mov eax , dword ptr [ Data937794 ] ;0x00406300 : a194779300
call Fun41757a ;0x00406305 : e870120100
mov dword ptr [ Data936de4 ] , 01388h ;0x0040630a : c705e46d930088130000
call Fun40c222 ;0x00406314 : e8095f0000
call Fun40c29c ;0x00406319 : e87e5f0000
xor esi , esi ;0x0040631e : 33f6
Label406320 ::
lea eax , dword ptr [ ebp - 12 ] ;0x00406320 : 8d45f4
push eax ;0x00406323 : 50
lea eax , dword ptr [ ebp + 0FFFFFF74h ] ;0x00406324 : 8d8574ffffff
call Fun42d200 ;0x0040632a : e8d16e0200
cmp dword ptr [ ebp - 8 ] , esi ;0x0040632f : 3975f8
jne Label5783de ;0x00406332 : 0f85a6201700
pop edi ;0x00406338 : 5f
pop esi ;0x00406339 : 5e
pop ebx ;0x0040633a : 5b
leave ;0x0040633b : c9
ret 04h ;0x0040633c : c20400
4. APPLIES TO:
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_vfp9fix11.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix174.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix175.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix176.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix234.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix281.asp
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|