Error in Printer.Free on app finalization
Original Reporter info from Mantis: Petr-K
-
Reporter name:
Original Reporter info from Mantis: Petr-K
- Reporter name:
Description:
If win32 application uses Printers unit and Printers are not initialized,
then I get runtime error 210 when program is finishing.
Reason:
Printers.Free calls TWinPrinter.DoResetPrintersList:
Loop "for i:=0 to Printers.Count-1 do" causes call TPrinter.GetPrinters
and because fPrintersValid = false printers initialization starts.
But program is almost terminated and initialization fails in some Canvas call.
Printers initialization at program termination is bad.
I added protected function TPrinter.PrintersValid to access private TPrinter.fPrintersValid and used it to do ResetPrintersList only if Printers are valid.
Patch is in the attachement.