summaryrefslogtreecommitdiff
path: root/svl/source/misc/strmadpt.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svl/source/misc/strmadpt.cxx')
-rw-r--r--svl/source/misc/strmadpt.cxx68
1 files changed, 35 insertions, 33 deletions
diff --git a/svl/source/misc/strmadpt.cxx b/svl/source/misc/strmadpt.cxx
index cb5852865c88..07e9b62fe310 100644
--- a/svl/source/misc/strmadpt.cxx
+++ b/svl/source/misc/strmadpt.cxx
@@ -570,45 +570,47 @@ void SvDataPipe_Impl::write(sal_Int8 const * pBuffer, sal_uInt32 nSize)
}
}
- if (nRemain > 0)
- for (;;)
- {
- sal_uInt32 nBlock
- = std::min(sal_uInt32(m_pWritePage->m_aBuffer + m_nPageSize
- - m_pWritePage->m_pEnd),
- nRemain);
- memcpy(m_pWritePage->m_pEnd, pBuffer, nBlock);
- m_pWritePage->m_pEnd += nBlock;
- pBuffer += nBlock;
- nRemain -= nBlock;
+ if (nRemain <= 0)
+ return;
- if (nRemain == 0)
- break;
+ for (;;)
+ {
+ sal_uInt32 nBlock
+ = std::min(sal_uInt32(m_pWritePage->m_aBuffer + m_nPageSize
+ - m_pWritePage->m_pEnd),
+ nRemain);
+ memcpy(m_pWritePage->m_pEnd, pBuffer, nBlock);
+ m_pWritePage->m_pEnd += nBlock;
+ pBuffer += nBlock;
+ nRemain -= nBlock;
- if (m_pWritePage->m_pNext == m_pFirstPage)
- {
- if (m_nPages == std::numeric_limits< sal_uInt32 >::max())
- break;
+ if (nRemain == 0)
+ break;
- Page * pNew
- = static_cast< Page * >(rtl_allocateMemory(
- sizeof (Page) + m_nPageSize
- - 1));
- pNew->m_pPrev = m_pWritePage;
- pNew->m_pNext = m_pWritePage->m_pNext;
+ if (m_pWritePage->m_pNext == m_pFirstPage)
+ {
+ if (m_nPages == std::numeric_limits< sal_uInt32 >::max())
+ break;
- m_pWritePage->m_pNext->m_pPrev = pNew;
- m_pWritePage->m_pNext = pNew;
- ++m_nPages;
- }
+ Page * pNew
+ = static_cast< Page * >(rtl_allocateMemory(
+ sizeof (Page) + m_nPageSize
+ - 1));
+ pNew->m_pPrev = m_pWritePage;
+ pNew->m_pNext = m_pWritePage->m_pNext;
- m_pWritePage->m_pNext->m_nOffset = m_pWritePage->m_nOffset
- + m_nPageSize;
- m_pWritePage = m_pWritePage->m_pNext;
- m_pWritePage->m_pStart = m_pWritePage->m_aBuffer;
- m_pWritePage->m_pRead = m_pWritePage->m_aBuffer;
- m_pWritePage->m_pEnd = m_pWritePage->m_aBuffer;
+ m_pWritePage->m_pNext->m_pPrev = pNew;
+ m_pWritePage->m_pNext = pNew;
+ ++m_nPages;
}
+
+ m_pWritePage->m_pNext->m_nOffset = m_pWritePage->m_nOffset
+ + m_nPageSize;
+ m_pWritePage = m_pWritePage->m_pNext;
+ m_pWritePage->m_pStart = m_pWritePage->m_aBuffer;
+ m_pWritePage->m_pRead = m_pWritePage->m_aBuffer;
+ m_pWritePage->m_pEnd = m_pWritePage->m_aBuffer;
+ }
}
SvDataPipe_Impl::SeekResult SvDataPipe_Impl::setReadPosition(sal_uInt32