Skip to content
Snippets Groups Projects
Commit 1d9f0473 authored by Thomas Jahns's avatar Thomas Jahns :cartwheel:
Browse files

Fix bug in grid serialization.

* Also use temporary to save repeated queries.
parent 7f0b6f29
No related branches found
No related tags found
No related merge requests found
......@@ -4174,12 +4174,14 @@ gridGetPackSizeBase(grid_t *gridP, void *context)
static int
gridGetPackSizeScalars(grid_t *gridP, void *context)
{
int packBuffSize = 0;
int packBuffSize = 0,
ui32PackSize = serializeGetSize(1, CDI_DATATYPE_UINT32, context);
packBuffSize += serializeGetSize(gridNint, CDI_DATATYPE_INT, context)
+ serializeGetSize(1, CDI_DATATYPE_UINT32, context);
+ ui32PackSize;
packBuffSize += serializeGetSize(gridNdouble, CDI_DATATYPE_FLT64, context);
packBuffSize += serializeGetSize(gridNdouble, CDI_DATATYPE_FLT64, context)
+ ui32PackSize;
{
const char *strTab[] = GRID_STR_SERIALIZE(gridP);
......@@ -4193,7 +4195,7 @@ gridGetPackSizeScalars(grid_t *gridP, void *context)
size_t len = strlen(gridP->reference);
packBuffSize += serializeGetSize(1, CDI_DATATYPE_INT, context)
+ serializeGetSize((int)len + 1, CDI_DATATYPE_TXT, context)
+ serializeGetSize(1, CDI_DATATYPE_UINT32, context);
+ ui32PackSize;
}
if (!cdiUUIDIsNull(gridP->uuid))
......@@ -4205,7 +4207,8 @@ gridGetPackSizeScalars(grid_t *gridP, void *context)
static int
gridGetPackSizeArrays(grid_t *gridP, void *context)
{
int packBuffSize = 0, count;
int packBuffSize = 0, count,
ui32PackSize = serializeGetSize(1, CDI_DATATYPE_UINT32, context);
if (gridP->rowlon)
{
......@@ -4222,7 +4225,7 @@ gridGetPackSizeArrays(grid_t *gridP, void *context)
count = gridP->x.size;
xassert(count);
packBuffSize += serializeGetSize(count, CDI_DATATYPE_FLT64, context)
+ serializeGetSize(1, CDI_DATATYPE_UINT32, context);
+ ui32PackSize;
}
if (gridP->vtable->inqYValsPtr(gridP))
......@@ -4233,7 +4236,7 @@ gridGetPackSizeArrays(grid_t *gridP, void *context)
count = gridP->y.size;
xassert(count);
packBuffSize += serializeGetSize(count, CDI_DATATYPE_FLT64, context)
+ serializeGetSize(1, CDI_DATATYPE_UINT32, context);
+ ui32PackSize;
}
if (gridP->vtable->inqAreaPtr(gridP))
......@@ -4241,7 +4244,7 @@ gridGetPackSizeArrays(grid_t *gridP, void *context)
xassert(gridP->size);
packBuffSize +=
serializeGetSize(gridP->size, CDI_DATATYPE_FLT64, context)
+ serializeGetSize(1, CDI_DATATYPE_UINT32, context);
+ ui32PackSize;
}
if (gridP->x.bounds)
......@@ -4254,7 +4257,7 @@ gridGetPackSizeArrays(grid_t *gridP, void *context)
xassert(count);
packBuffSize
+= (serializeGetSize(gridP->nvertex * count, CDI_DATATYPE_FLT64, context)
+ serializeGetSize(1, CDI_DATATYPE_UINT32, context));
+ ui32PackSize);
}
if (gridP->y.bounds)
......@@ -4267,7 +4270,7 @@ gridGetPackSizeArrays(grid_t *gridP, void *context)
xassert(count);
packBuffSize
+= (serializeGetSize(gridP->nvertex * count, CDI_DATATYPE_FLT64, context)
+ serializeGetSize(1, CDI_DATATYPE_UINT32, context));
+ ui32PackSize);
}
if (gridP->mask)
......@@ -4275,14 +4278,14 @@ gridGetPackSizeArrays(grid_t *gridP, void *context)
xassert(gridP->size);
packBuffSize
+= serializeGetSize(gridP->size, CDI_DATATYPE_UCHAR, context)
+ serializeGetSize(1, CDI_DATATYPE_UINT32, context);
+ ui32PackSize;
}
if (gridP->mask_gme)
{
xassert(gridP->size);
packBuffSize += serializeGetSize(gridP->size, CDI_DATATYPE_UCHAR, context)
+ serializeGetSize(1, CDI_DATATYPE_UINT32, context);
+ ui32PackSize;
}
return packBuffSize;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment