----------------------------------------------------------------------------------------------------- [ENHANCED] VFP 9.0 FIX - THE DEFAULT VALUE FOR THE PROGCACHE TERM IN THE CONFIGURATION FILE January 2024 ----------------------------------------------------------------------------------------------------- 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. |