From cb9e97e2c1d634d90b13758bdd03369df7d19505 Mon Sep 17 00:00:00 2001 From: Guilhem Lavaux Date: Sun, 24 Jan 2021 09:31:01 +0100 Subject: [PATCH] Fixes --- python/_cosmotool.pyx | 2 +- src/fortran.cpp | 6 ++++-- src/loadGadget.cpp | 10 +++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/python/_cosmotool.pyx b/python/_cosmotool.pyx index ed9195e..3bfc88c 100644 --- a/python/_cosmotool.pyx +++ b/python/_cosmotool.pyx @@ -410,7 +410,7 @@ def loadGadget(str filename, int snapshot_id, int gadgetFormat = 1, bool loadPos with nogil: data = loadGadgetMulti(filename_bs, snapshot_id, flags, gadgetFormat) if data == 0: - return None + raise RuntimeError("File could not be read") return PySimulationAdaptor(wrap_simudata(data, flags)) diff --git a/src/fortran.cpp b/src/fortran.cpp index 376d62d..967b19a 100644 --- a/src/fortran.cpp +++ b/src/fortran.cpp @@ -139,14 +139,16 @@ void UnformattedRead::beginCheckpoint(bool bufferRecord) void UnformattedRead::endCheckpoint(bool autodrop) { + bool always_fail = false; + if (recordBuffer != 0) { delete[] recordBuffer; recordBuffer = 0; } if (cSize == Check_32bits) { - if (checkPointAccum >= 1<<32UL) { + if (checkPointAccum >= 1UL<<32UL) { always_fail = true; - checkPointAccum %= (1<<32UL); + checkPointAccum %= (1UL<<32UL); } } diff --git a/src/loadGadget.cpp b/src/loadGadget.cpp index 0a5a0f0..3969ec2 100644 --- a/src/loadGadget.cpp +++ b/src/loadGadget.cpp @@ -221,7 +221,7 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id, cerr << "Invalid format while reading header" << endl; delete data; delete f; - return 0; + throw; } @@ -275,7 +275,7 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id, cerr << "Invalid format while reading positions" << endl; delete f; delete data; - return 0; + throw; } } else { @@ -292,7 +292,7 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id, { delete f; delete data; - return 0; + throw; } } @@ -317,7 +317,7 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id, cerr << "Invalid format while reading velocities" << endl; delete f; delete data; - return 0; + throw; } // THE VELOCITIES ARE IN PHYSICAL COORDINATES @@ -367,7 +367,7 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id, cerr << "Invalid unformatted access while reading ID" << endl; delete f; delete data; - return 0; + throw; } } else { f->skip(2*4);