Hello,
On 2022-01-21 23:54, Samuel Gougeon wrote:
Hello Claus,
Le 21/01/2022 à 20:58, Claus Futtrup a écrit :
Hi Scilabers
Today I tried to replace xdel(winsid()) in one of my scripts with
close(winsid()) because Scilab shows a warning in the console:
Warning: Feature xdel(...) is obsolete and will be permanently removed
in Scilab 6.2
Warning: Please use close(...) instead.
I am negatively surprised that the close() command takes a long time
to execute with 5-10 windows open (a few seconds per window). The
xdel() command can do it in a split second.
The issue comes not from close() but from the change offindobj() that it
calls <http://bugzilla.scilab.org/show_bug.cgi?id=13738#c4>, noticeably
to perform findobj("figure_id",id) in 6.1.1.
It does not impact only <http://bugzilla.scilab.org/16734> close() for
this case, that was processed as a special accelerated case
<https://codereview.scilab.org/#/c/20953/6/scilab/modules/gui/macros/findobj.sci>
in the former findobj().
This downgradingwas reported
<http://bugzilla.scilab.org/show_bug.cgi?id=7117#c6> 7 months before
releasing 6.1.1, and knowingly ignored, while it is perfectly fixable by
restoring the fast special case.
What is the motivation for replacing xdel with close?
Both do the same thing. Scilab does not need duplicates.
Regards
Samuel
scf(id) is much faster than findobj("figure_id",id)
--> winsid()
ans =
0. 1.
--> tic, f = []; for k=winsid(), f = [findobj("figure_id",k); f]; end, toc
ans =
0.281087
--> tic, f = []; for k=winsid(), f = [scf(k); f]; end, toc
ans =
0.000237
So, this is how to do it:
--> for k=winsid(), delete(scf(k)); end
Regards
Stefan
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users