Some recent debugging handed me a reminder that we have several varieties of 'inboard source' in the system already, just not presently used and probably not complete.
Take a look at CompiledMethod>>#getSourceFor:in: - it looks at the method properties, checking for a Dictionary with a #source entry - it checks the method trailer for tempNames, and if found, decompresses the names string and then decompiles the method and inserts those tempNames - it checks the trailer for sourceCode that may be contained in one of four different ways, two of them being compressed strings in the trailer and I think the code in CompiledMethodTrailer>>#sourceCode fails to decompress them? The other two methods rely on methods that no longer exist in the image. - it checks if the trailer has a source pointer, and if not, decompiles the method with no assistance fro many temp names stuff - if there is a source pointer, that value is used to fetch the source from the file(s), and as a backup for the files not being there it repeats the bare decompile code.
I think we might be able to clean that up a bit.
tim -- tim Rowledge; tim@rowledge.org; http://www.rowledge.org/tim Useful Latin Phrases:- Illiud Latine dici non potest = You can't say that in Latin.