fix a hang up in wxExecute(wxArrayString& output) overload (#4380)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -433,8 +433,19 @@ wxPipeInputStream::~wxPipeInputStream()
|
|||||||
|
|
||||||
bool wxPipeInputStream::CanRead() const
|
bool wxPipeInputStream::CanRead() const
|
||||||
{
|
{
|
||||||
|
// we can read if there's something in the put back buffer
|
||||||
|
// even pipe is closed
|
||||||
|
if ( m_wbacksize > m_wbackcur )
|
||||||
|
return true;
|
||||||
|
|
||||||
|
wxPipeInputStream * const self = wxConstCast(this, wxPipeInputStream);
|
||||||
|
|
||||||
if ( !IsOpened() )
|
if ( !IsOpened() )
|
||||||
|
{
|
||||||
|
// set back to mark Eof as it may have been unset by Ungetch()
|
||||||
|
self->m_lasterror = wxSTREAM_EOF;
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
DWORD nAvailable;
|
DWORD nAvailable;
|
||||||
|
|
||||||
@@ -460,8 +471,6 @@ bool wxPipeInputStream::CanRead() const
|
|||||||
// it had been closed
|
// it had been closed
|
||||||
::CloseHandle(m_hInput);
|
::CloseHandle(m_hInput);
|
||||||
|
|
||||||
wxPipeInputStream *self = wxConstCast(this, wxPipeInputStream);
|
|
||||||
|
|
||||||
self->m_hInput = INVALID_HANDLE_VALUE;
|
self->m_hInput = INVALID_HANDLE_VALUE;
|
||||||
self->m_lasterror = wxSTREAM_EOF;
|
self->m_lasterror = wxSTREAM_EOF;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user