mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-26 19:25:39 +00:00
fix memory access bugs in flimage use.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3682 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
ff8f704031
commit
1ce24386f2
@ -1,3 +1,10 @@
|
|||||||
|
2002-03-07 Angus Leeming <a.leeming@ic.ac.uk>
|
||||||
|
|
||||||
|
* xformsGImage.C (statusCB, errorCB): close the file streams once the
|
||||||
|
image is loaded or if an error occurs.
|
||||||
|
(init_graphics): FLIMAGE_SETUP setup must be static as xforms stores
|
||||||
|
it permanently (and does not make a copy!).
|
||||||
|
|
||||||
2002-03-05 Angus Leeming <a.leeming@ic.ac.uk>
|
2002-03-05 Angus Leeming <a.leeming@ic.ac.uk>
|
||||||
|
|
||||||
* xformsGImage.[Ch]: new files. An image loader based on xforms library
|
* xformsGImage.[Ch]: new files. An image loader based on xforms library
|
||||||
|
@ -308,9 +308,15 @@ void xformsGImage::statusCB(string const & status_message)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (prefixIs(status_message, "Done Reading")) {
|
if (prefixIs(status_message, "Done Reading")) {
|
||||||
|
if (image_) {
|
||||||
|
flimage_close(image_);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (on_finish_.get()) {
|
||||||
on_finish_->emit(true);
|
on_finish_->emit(true);
|
||||||
on_finish_.reset();
|
on_finish_.reset();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -319,8 +325,14 @@ void xformsGImage::errorCB(string const & error_message)
|
|||||||
if (error_message.empty() || !on_finish_.get())
|
if (error_message.empty() || !on_finish_.get())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (image_) {
|
||||||
|
flimage_close(image_);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (on_finish_.get()) {
|
||||||
on_finish_->emit(false);
|
on_finish_->emit(false);
|
||||||
on_finish_.reset();
|
on_finish_.reset();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace grfx
|
} // namespace grfx
|
||||||
@ -398,7 +410,9 @@ void init_graphics()
|
|||||||
flimage_enable_xwd();
|
flimage_enable_xwd();
|
||||||
flimage_enable_xpm();
|
flimage_enable_xpm();
|
||||||
|
|
||||||
FLIMAGE_SETUP setup;
|
// xforms stores this permanently (does not make a copy) so
|
||||||
|
// this should never be destroyed.
|
||||||
|
static FLIMAGE_SETUP setup;
|
||||||
setup.visual_cue = status_report;
|
setup.visual_cue = status_report;
|
||||||
setup.error_message = error_report;
|
setup.error_message = error_report;
|
||||||
flimage_setup(&setup);
|
flimage_setup(&setup);
|
||||||
|
Loading…
Reference in New Issue
Block a user