summaryrefslogtreecommitdiffstats
path: root/src/H5Ostab.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Ostab.c')
-rw-r--r--src/H5Ostab.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/H5Ostab.c b/src/H5Ostab.c
index ec6dd61..d2c1394 100644
--- a/src/H5Ostab.c
+++ b/src/H5Ostab.c
@@ -23,6 +23,8 @@
#include "H5MMprivate.h"
#include "H5Oprivate.h"
+#define PABLO_MASK H5O_stab_mask
+
/* PRIVATE PROTOTYPES */
static void *H5O_stab_decode (hdf5_file_t *f, const uint8 *p);
static herr_t H5O_stab_encode (hdf5_file_t *f, size_t size, uint8 *p,
@@ -200,20 +202,26 @@ H5O_stab_cache (H5G_entry_t *ent, const void *_mesg)
assert (ent);
assert (stab);
- /* cache */
+ /*
+ * We do this in two steps so Purify doesn't complain about
+ * uninitialized memory reads even though they don't bother
+ * anything.
+ */
if (H5G_CACHED_STAB != ent->type) {
modified = TRUE;
ent->type = H5G_CACHED_STAB;
- }
-
- if (ent->cache.stab.btree != stab->btree) {
- modified = TRUE;
ent->cache.stab.btree = stab->btree;
- }
-
- if (ent->cache.stab.heap != stab->heap) {
- modified = TRUE;
ent->cache.stab.heap = stab->heap;
+ } else {
+ if (ent->cache.stab.btree != stab->btree) {
+ modified = TRUE;
+ ent->cache.stab.btree = stab->btree;
+ }
+
+ if (ent->cache.stab.heap != stab->heap) {
+ modified = TRUE;
+ ent->cache.stab.heap = stab->heap;
+ }
}
FUNC_LEAVE (modified);