====== obj.ClearObject ====== ===== Motivation ===== As explained on the [[xff - memory management|memory management]] page, xff stores the actual content of objects in a global variable, which means that the statement clear obj; does **not** have the desired effect of clearing (freeing) the memory associated with the variable (object) ''obj''. Instead, the memory must be freed using a class/object method (which in turn removes the object's content from the global variable). ===== Reference ('obj.Help('ClearObject')') ===== AFT::ClearObject - remove object from global storage FORMAT: obj.ClearObject; No input / output fields. TYPES: ALL ===== Usage example ===== % creating a temporary SDM sdm = xff('new:sdm'); % adding filters sdm.AddFilters(struct('number', 3, 'timepts', 120)); % getting filter regressors filterregs = sdm.SDMMatrix; % clearing object to free associated memory!! sdm.ClearObject; ===== Note ===== While xff does support garbage collection, this does **not** affect objects that * have been created in the BASE workspace (which includes objects created in batch M-files, as long as this batch file was called from the BASE workspace, i.e. the console) * have been ''bless''ed using the ''bless(obj);'' or ''bless(obj, levels);'' call Also, the garbage collection is called only when a method on any given xff object is used; so it can sometimes take a while before memory becomes available again. In general, **it is highly suggested that you clear objects once you know they are no longer required** to free up the memory they allocate!