[imp] Filtercode (HEAD) is killing existing filterdefinitions!
Michael M Slusarz
slusarz@bigworm.colorado.edu
Tue, 6 Aug 2002 15:58:04 -0600
Quoting Jan Schneider <jan@horde.org>:
| > I found the error - it wasn't in the logic of my code either. IMP_Filter
| > registers a shutdown function to save the filters anytime the filter
| list
| > is changed. However, for some strange reason, the IMP_Filter shutdown
| > function only sees the filters list at the time when it was registered.
|
| > Thus, this is why only 1 filter was ever being saved.
| >
| > This does not seem to be the correct behavior, at least when reading
| the
| > register_shutdown_function() documentation. Anybody have any idea on
| > this
| > one?
|
| No, but this already became suspicious to me as I had the feeling that if
| you select multiple messages for blacklisting, only one would have been
| saved. But I never investigated that further.
Final note: it appears that when you register a function for shutdown, PHP
essentially "compiles" the function at that instant and will use
that "compiled" function later. Thus, if there is a class variable inside
of that function, that variable will be used as it appears at the time the
function is registered. This appeared to be the problem in this case.
Workaround: see my latest commit for Filter.php; Namely, don't use a class
variable in the called shutdown function - use a "wrapper" function instead.
michael
______________________________________________
Michael Slusarz [slusarz@bigworm.colorado.edu]
The University of Colorado at Boulder