//
// Why is the threshold a signed integer? —isis
#[no_mangle]
--pub extern "C" fn protover_compute_vote(
-- list: *const Stringlist,
- threshold: c_int,
- allow_long_proto_names: bool,
- threshold: c_int
--) -> *mut c_char {
-
++pub extern "C" fn protover_compute_vote(list: *const Stringlist, threshold: c_int) -> *mut c_char {
if list.is_null() {
- let empty = String::new();
- return allocate_and_copy_string(&empty);
+ return allocate_and_copy_string("");
}
// Dereference of raw pointer requires an unsafe block. The pointer is
let mut proto_entries: Vec<UnvalidatedProtoEntry> = Vec::new();
for datum in data {
- let entry: UnvalidatedProtoEntry = if allow_long_proto_names {
- match UnvalidatedProtoEntry::from_str_any_len(datum.as_str()) {
- Ok(n) => n,
- Err(_) => continue,
- }
- } else {
- match datum.parse() {
- Ok(n) => n,
- Err(_) => continue,
- }
+ let entry: UnvalidatedProtoEntry = match datum.parse() {
- Ok(n) => n,
- Err(_) => continue
++ Ok(n) => n,
++ Err(_) => continue,
};
proto_entries.push(entry);
}