mirror of
https://github.com/FirebirdSQL/firebird.git
synced 2025-01-23 08:03:04 +01:00
Fixed stack overflow reason as shown by failed fbt test for core-4653.
This commit is contained in:
parent
92ae3c8f13
commit
ef975036dd
@ -417,6 +417,8 @@ namespace Jrd
|
||||
bool internalGetRecord(thread_db* tdbb) const override;
|
||||
|
||||
private:
|
||||
void process(thread_db* tdbb) const;
|
||||
|
||||
NestConst<RecordSource> m_next;
|
||||
StreamList m_streams;
|
||||
};
|
||||
|
@ -87,6 +87,18 @@ bool SingularStream::internalGetRecord(thread_db* tdbb) const
|
||||
|
||||
if (m_next->getRecord(tdbb))
|
||||
{
|
||||
process(tdbb);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void SingularStream::process(thread_db* tdbb) const
|
||||
{
|
||||
Request* const request = tdbb->getRequest();
|
||||
Impure* const impure = request->getImpure<Impure>(m_impure);
|
||||
|
||||
const FB_SIZE_T streamCount = m_streams.getCount();
|
||||
MemoryPool& pool = *tdbb->getDefaultPool();
|
||||
HalfStaticArray<record_param, 16> rpbs(pool, streamCount);
|
||||
@ -122,11 +134,6 @@ bool SingularStream::internalGetRecord(thread_db* tdbb) const
|
||||
}
|
||||
|
||||
impure->irsb_flags |= irsb_singular_processed;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool SingularStream::refetchRecord(thread_db* tdbb) const
|
||||
|
Loading…
Reference in New Issue
Block a user