ggml_backend_dev_by_name always appends a nullptr sentinel to the devices
vector. Skipping nullptr entries prevents assertion failure in
ggml_backend_dev_name.
Assisted-by: llama.cpp:local pi
};
static std::string common_speculative_get_devices_str(const std::vector<ggml_backend_dev_t> & devices) {
- if (devices.empty()) {
- return "default";
- }
-
std::string result;
for (size_t i = 0; i < devices.size(); i++) {
- if (i > 0) result += ", ";
+ if (devices[i] == nullptr) {
+ continue;
+ }
+ if (!result.empty()) result += ", ";
result += ggml_backend_dev_name(devices[i]);
}
- return result;
+ return result.empty() ? "default" : result;
}
struct common_speculative_config {