diff --git a/src/library.cpp b/src/library.cpp index 793c817e9a..d045d08adc 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -4850,8 +4850,9 @@ int lammps_id_name(void *handle, const char *category, int idx, char *buffer, in auto lmp = (LAMMPS *) handle; if (strcmp(category,"compute") == 0) { - if ((idx >=0) && (idx < lmp->modify->ncompute)) { - strncpy(buffer, lmp->modify->compute[idx]->id, buf_size); + auto icompute = lmp->modify->get_compute_by_index(idx); + if (icompute) { + strncpy(buffer, icompute->id, buf_size); return 1; } } else if (strcmp(category,"dump") == 0) { @@ -4860,8 +4861,9 @@ int lammps_id_name(void *handle, const char *category, int idx, char *buffer, in return 1; } } else if (strcmp(category,"fix") == 0) { - if ((idx >=0) && (idx < lmp->modify->nfix)) { - strncpy(buffer, lmp->modify->fix[idx]->id, buf_size); + auto ifix = lmp->modify->get_fix_by_index(idx); + if (ifix) { + strncpy(buffer, ifix->id, buf_size); return 1; } } else if (strcmp(category,"group") == 0) { diff --git a/src/modify.h b/src/modify.h index b339f31530..bd80cbece1 100644 --- a/src/modify.h +++ b/src/modify.h @@ -113,7 +113,9 @@ class Modify : protected Pointers { int find_fix(const std::string &); // new API Fix *get_fix_by_id(const std::string &) const; - Fix *get_fix_by_index(int idx) const { return fix[idx]; } + Fix *get_fix_by_index(int idx) const { + return ((idx >= 0) && (idx < nfix)) ? fix[idx] : nullptr; + } const std::vector get_fix_by_style(const std::string &) const; const std::vector &get_fix_list(); @@ -127,7 +129,9 @@ class Modify : protected Pointers { int find_compute(const std::string &); // new API Compute *get_compute_by_id(const std::string &) const; - Compute *get_compute_by_index(int idx) const { return compute[idx]; } + Compute *get_compute_by_index(int idx) const { + return ((idx >= 0) && (idx < nfix)) ? compute[idx] : nullptr; + } const std::vector get_compute_by_style(const std::string &) const; const std::vector &get_compute_list();