Hacking on core Squeak

(This page is a mirrored copy of an article originally posted on the LShift blog; see the archive index here.)

Today, attempting to port SPrevayler to Squeak 3.9, I ran into a problem with the FilePlugin. It turns out the problem is already covered by a test case in the image, and that the test case is currently failing, at least on Linux on the versions of the VM I tried (3.7-7, 3.9-7, and svn trunk).

The problem is that FilePlugin is caching the DIR* for the directory that was just deleted, and deleting the directory doesn’t invalidate the DIR* cache. Adding a check against lastPathValid and lastPath in dir_Delete solves the problem. Hopefully the fix will be included in mainline builds soon.

(The bug report I filed is at http://bugs.impara.de/view.php?id=3649.)