Microsoft KB Archive/894010

= Memory leak and corruption bugs that are fixed in Visual FoxPro 9.0 =

Article ID: 894010

Article Last Modified on 3/2/2005

-

APPLIES TO


 * Microsoft Visual FoxPro 9.0 Professional Edition

-



SUMMARY
This article lists the memory leak and corruption bugs that are fixed in Microsoft Visual FoxPro 9.0.



Fixed memory leak bugs

 * A memory leak that repeatedly creates a PAGE class object may cause Visual FoxPro to crash.
 * The SYS(2017) function leaks memory.
 * A memory leak occurs in the Properties window when you change a property value.
 * A memory leak occurs when you use the SET SYSMENU SAVE command if a menu contains the ON SELECTION BAR command.
 * A memory and handle leak occurs when the AEVENTS function is called inside a handled event.
 * A memory leak occurs in the View Field Properties dialog box in View Designer.
 * A memory leak occurs if the target CursorSchema property is incompatible with the actual result when you use the CursorAdapter class and ActiveX Data Objects (ADO).
 * A memory leak occurs when you use the TABLEUPDATE function with the CursorAdapter class when the value of the BatchUpdateCount property is more than 1.
 * A memory leak occurs in SQL pass-through execution when the OLDVAL function is used as a parameter expression.
 * The SYS(3054) function leaks memory.
 * A leak of Graphics Device Interface (GDI) objects occurs every time that the mouse pointer passes over a menu bar.
 * Report preview leaks one GDI handle every time that it is used.

Fixed corruption bugs

 * Incorrect results are returned from a query when the NOT operator is applied to a sub-query comparison.
 * Incorrect results are returned from a query when a temporary index on a nullable field is used to optimize a JOIN evaluation.
 * Incorrect results are returned from a query when a temporary index on a nullable field is used to optimize a JOIN evaluation for a not equal (<>) condition.
 * UTF8 data is corrupted when it is loaded by using an XMLAdapter class.
 * An out-of-date index node in memory that is exposed by the SKIP, INDEXSEEK, and LOCATE commands causes a false-positive &quot;Index is Corrupt&quot; error message.
 * Visual FoxPro accesses random memory and then you receive a corrupted error message when you run a &quot;select null from tablename&quot; command.
 * Menu pad corruption occurs when you use the SET SYSMENU and PUSH/POP menu commands.
 * The Component Object Model (COM) interop uses the default system code page to convert strings to and from Unicode. This action corrupts strings that use a different non-English code page.
 * You may experience data corruption when Visual FoxPro fetches data into a Date field.
 * An index is corrupted in certain circumstances when the TABLEUPDATE command fails and the record is modified again.
 * Check constraint does not occur as expected when a second mutually exclusive constraint exists. Data is incorrectly inserted.
 * Aggregate functions such as the MAX and COUNT functions return incorrect result if zero records match filter condition.
 * An incorrect code page is used in a multithreaded runtime. This behavior could lead to data corruption.
 * Incorrect results are returned from a query when null values are involved in sub-query comparison.
 * Incorrect results are returned from a query that tries to JOIN tables with different code pages.
 * Incorrect results are returned from a query when a temporary index on a nullable field is used to optimize JOIN evaluation.
 * Incorrect results are returned from a query when the EXISTS operator is used on a correlated subquery with an aggregate function that uses the HAVING operator.
 * Incorrect results are returned from a query when a key that is longer than the maximum key length is used to optimize an exactly equal condition.
 * Incorrect results are returned from a query when the SET ANSI OFF command is used and when a key that is longer than the maximum key length is used to optimize a > (greater than) condition or a < (less than) condition.

