avoid segfaults when updating charts in simulations with fast thermo output

This commit is contained in:
Axel Kohlmeyer
2024-06-13 08:34:25 -04:00
parent ce7ba21b8b
commit 4b0adcc66a

View File

@ -852,14 +852,19 @@ void LammpsGui::logupdate()
} }
for (int i = 0; i < ncols; ++i) { for (int i = 0; i < ncols; ++i) {
int datatype = *(int *)lammps.last_thermo("type", i); int datatype = -1;
double data = 0.0; double data = 0.0;
void *ptr = lammps.last_thermo("type", i);
if (ptr) datatype = *(int *)ptr;
ptr = lammps.last_thermo("data", i);
if (ptr) {
if (datatype == 0) // int if (datatype == 0) // int
data = *(int *)lammps.last_thermo("data", i); data = *(int *)ptr;
else if (datatype == 2) // double else if (datatype == 2) // double
data = *(double *)lammps.last_thermo("data", i); data = *(double *)ptr;
else if (datatype == 4) // bigint else if (datatype == 4) // bigint
data = (double)*(int64_t *)lammps.last_thermo("data", i); data = (double)*(int64_t *)ptr;
}
chartwindow->add_data(step, data, i); chartwindow->add_data(step, data, i);
} }
} }