summaryrefslogtreecommitdiff
path: root/registry
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-10-07 14:13:57 +0200
committerStephan Bergmann <sbergman@redhat.com>2015-10-07 15:43:44 +0200
commit5f66de5c492168664992bcdc800506a330fe401a (patch)
tree7344382366e956d95df7bedca0cfa7fdfe3469fb /registry
parentdb34ab81ae170cf9ec1c4421e0f05d65747caa3e (diff)
Abstract out repeated code into a lambda
...to silence a clang-analyzer-deadcode.DeadStores on the last update of pBuffer Change-Id: I144b64c330c178f78109fefadacf62fca3765694
Diffstat (limited to 'registry')
-rw-r--r--registry/source/reflwrit.cxx31
1 files changed, 13 insertions, 18 deletions
diff --git a/registry/source/reflwrit.cxx b/registry/source/reflwrit.cxx
index be4b15cd9aea..febfbc696d2e 100644
--- a/registry/source/reflwrit.cxx
+++ b/registry/source/reflwrit.cxx
@@ -1114,29 +1114,24 @@ void TypeWriter::createBlop()
pInfo = pNextInfo;
}
- // write fields
- pBuffer += writeUINT16(pBuffer, m_fieldCount);
- if (blopFieldsSize)
+ auto writeList = [&pBuffer](
+ sal_uInt16 count, sal_uInt8 * data, sal_uInt32 size)
{
- memcpy(pBuffer, pBlopFields, blopFieldsSize);
- pBuffer += blopFieldsSize;
- }
+ pBuffer += writeUINT16(pBuffer, count);
+ if (size != 0) {
+ memcpy(pBuffer, data, size);
+ pBuffer += size;
+ }
+ };
+
+ // write fields
+ writeList(m_fieldCount, pBlopFields, blopFieldsSize);
// write methods
- pBuffer += writeUINT16(pBuffer, m_methodCount);
- if (blopMethodsSize)
- {
- memcpy(pBuffer, pBlopMethods, blopMethodsSize);
- pBuffer += blopMethodsSize;
- }
+ writeList(m_methodCount, pBlopMethods, blopMethodsSize);
// write references
- pBuffer += writeUINT16(pBuffer, m_referenceCount);
- if (blopReferenceSize)
- {
- memcpy(pBuffer, pBlopReferences, blopReferenceSize);
- pBuffer += blopReferenceSize;
- }
+ writeList(m_referenceCount, pBlopReferences, blopReferenceSize);
delete[] pBlopFields;
delete[] pBlopMethods;