|
|
c3bfa1c |
diff --git a/src/syncevo/SyncSource.h b/src/syncevo/SyncSource.h
|
|
|
c3bfa1c |
index 7029993..d38d5e8 100644
|
|
|
c3bfa1c |
--- a/src/syncevo/SyncSource.h
|
|
|
c3bfa1c |
+++ b/src/syncevo/SyncSource.h
|
|
|
c3bfa1c |
@@ -1830,7 +1830,20 @@ class SyncSourceBlob : public virtual SyncSourceBase
|
|
|
c3bfa1c |
void **aBlkPtr, size_t *aBlkSize,
|
|
|
c3bfa1c |
size_t *aTotSize,
|
|
|
c3bfa1c |
bool aFirst, bool *aLast) {
|
|
|
c3bfa1c |
- return m_blob.ReadBlob(aID, aBlobID, aBlkPtr, aBlkSize, aTotSize, aFirst, aLast);
|
|
|
c3bfa1c |
+ // Translate between sysync::memSize and size_t, which
|
|
|
c3bfa1c |
+ // is different on s390 (or at least the compiler complains...).
|
|
|
c3bfa1c |
+ sysync::memSize blksize, totsize;
|
|
|
c3bfa1c |
+ sysync::TSyError err = m_blob.ReadBlob(aID, aBlobID, aBlkPtr,
|
|
|
c3bfa1c |
+ aBlkSize ? &blksize : NULL,
|
|
|
c3bfa1c |
+ aTotSize ? &totsize : NULL,
|
|
|
c3bfa1c |
+ aFirst, aLast);
|
|
|
c3bfa1c |
+ if (aBlkSize) {
|
|
|
c3bfa1c |
+ *aBlkSize = blksize;
|
|
|
c3bfa1c |
+ }
|
|
|
c3bfa1c |
+ if (aTotSize) {
|
|
|
c3bfa1c |
+ *aTotSize = totsize;
|
|
|
c3bfa1c |
+ }
|
|
|
c3bfa1c |
+ return err;
|
|
|
c3bfa1c |
}
|
|
|
c3bfa1c |
sysync::TSyError writeBlob(sysync::cItemID aID, const char *aBlobID,
|
|
|
c3bfa1c |
void *aBlkPtr, size_t aBlkSize,
|
|
|
c3bfa1c |
diff --git a/src/syncevo/SynthesisDBPlugin.cpp b/src/syncevo/SynthesisDBPlugin.cpp
|
|
|
c3bfa1c |
index 089a687..346e552 100644
|
|
|
c3bfa1c |
--- a/src/syncevo/SynthesisDBPlugin.cpp
|
|
|
c3bfa1c |
+++ b/src/syncevo/SynthesisDBPlugin.cpp
|
|
|
c3bfa1c |
@@ -721,8 +721,19 @@ sysync::TSyError SyncEvolution_ReadBlob(CContext aContext, cItemID aID, cAppCh
|
|
|
c3bfa1c |
TSyError res;
|
|
|
c3bfa1c |
if (source->getOperations().m_readBlob) {
|
|
|
c3bfa1c |
try {
|
|
|
c3bfa1c |
- res = source->getOperations().m_readBlob(aID, aBlobID, (void **)aBlkPtr, aBlkSize,
|
|
|
c3bfa1c |
- aTotSize, aFirst, aLast);
|
|
|
c3bfa1c |
+ size_t blksize, totsize;
|
|
|
c3bfa1c |
+ /* Another conversion between memSize and size_t to make s390 happy */
|
|
|
c3bfa1c |
+ res = source->getOperations().m_readBlob(aID, aBlobID, (void **)aBlkPtr,
|
|
|
c3bfa1c |
+ aBlkSize ? &blksize : NULL,
|
|
|
c3bfa1c |
+ aTotSize ? &totsize : NULL,
|
|
|
c3bfa1c |
+ aFirst, aLast);
|
|
|
c3bfa1c |
+ if (aBlkSize) {
|
|
|
c3bfa1c |
+ *aBlkSize = blksize;
|
|
|
c3bfa1c |
+ }
|
|
|
c3bfa1c |
+ if (aTotSize) {
|
|
|
c3bfa1c |
+ *aTotSize = totsize;
|
|
|
c3bfa1c |
+ }
|
|
|
c3bfa1c |
+
|
|
|
c3bfa1c |
} catch (...) {
|
|
|
c3bfa1c |
res = source->handleException();
|
|
|
c3bfa1c |
}
|