A recent update broke Lister.Update() method: lister object gets corrupted (no more vars)

Updated yesterday to 13.16.5 from an earlier 13.16.x.

Since then, when I try to access the vars from the Lister object after a Lister.Update() the vars object seems corrupted (error with Listers.vars.exists and TypeOf(Lister.vars) returns empty).

Here's a button to reproduce:
Test Lister Vars.dcf (2.3 KB)

Associated code (script button):

function OnClick(clickData)
{
	DOpus.ClearOutput();
	// --------------------------------------------------------
	var cmd = clickData.func.command;
	cmd.deselect = false; // Prevent automatic deselection

	DOpus.Output("Trying to access lister vars");

	var lister = clickData.func.sourcetab.lister;
	DOpus.Output("TypeOf lister: " + DOpus.TypeOf(lister) );

	var listerVars = lister.vars;
	DOpus.Output("TypeOf lister.vars: " + DOpus.TypeOf(listerVars) );
	for (var e=new Enumerator(listerVars); !e.atEnd(); e.moveNext()) {
		var oneVar = e.item();
		DOpus.Output("One var: " +  oneVar.name + " = " + oneVar.value);
	}

	if (lister.vars.exists("DynGrpMaxSeq"))
		DOpus.Output("Var DynGrpMaxSeq exists");
	else
		DOpus.Output("Var DynGrpMaxSeq DOES NOT exist");

	DOpus.Output("Updating lister");	
	lister.Update();

	listerVars = lister.vars;
	DOpus.Output("TypeOf lister.vars: " + DOpus.TypeOf(listerVars) );
	for (var e=new Enumerator(listerVars); !e.atEnd(); e.moveNext()) {
		var oneVar = e.item();
		DOpus.Output("One var: " +  oneVar.name + " = " + oneVar.value);
	}	
}

EDIT: Did not do further testing to see if other properties or methods are also impacted.

Thanks, fixed in the next update.

4 Likes

I started to encounter this problem in v13.16.3.
lister.Vars.Set is undefined

    var tab = scriptCmdData.func.sourcetab;
	var lister = tab.lister;
	lister.Vars.Set...

Solved in 13.16.5.

1 Like