This section describes some advanced features of the Swapper. For information on the methods mentioned, examine the comments for the methods in a Smalltalk browser.
The main purpose of including the instance variable names is to let the Swapper support object mutation. The size of an average object dump will increase by approximately five to ten percent when including the instance variable names. Applications which are concerned about dumping space can configure the Swapper to exclude instance variable names in the unloading process, and ignore the instance variable names in the loading process.
The methods includeInstVarNames and includeInstVarNames: in ObjectSwapper are used to include instance variables.
The mutation process relies on the fact that the Swapper is set up to include the instance variable names of each class whose instances are unloaded and loaded.
The methods addMutatedClassNamed:newClass: and removeMutatedClassNamed: in ObjectLoader and the methods mutateObjects:fromPlatform:named:withDefinition: and defaultInstanceVariableMappings in Behavior handle object mutation.