| ... | ... | @@ -412,16 +412,16 @@ pub fn main() anyerror!void { |
| 412 | 412 | { |
| 413 | 413 | var it = root_map.iterator(); |
| 414 | 414 | it_map: while (it.next()) |kv| { |
| 415 | | if (kv.key.len == 0) continue; |
| 416 | | if (kv.key.*[0] == '!') continue; |
| 417 | | if (kv.value.* != .Object) continue; |
| 418 | | if (!kv.value.Object.contains("NumArgs")) continue; |
| 419 | | if (!kv.value.Object.contains("Name")) continue; |
| 415 | if (kv.key_ptr.len == 0) continue; |
| 416 | if (kv.key_ptr.*[0] == '!') continue; |
| 417 | if (kv.value_ptr.* != .Object) continue; |
| 418 | if (!kv.value_ptr.Object.contains("NumArgs")) continue; |
| 419 | if (!kv.value_ptr.Object.contains("Name")) continue; |
| 420 | 420 | for (blacklisted_options) |blacklisted_key| { |
| 421 | | if (std.mem.eql(u8, blacklisted_key, kv.key.*)) continue :it_map; |
| 421 | if (std.mem.eql(u8, blacklisted_key, kv.key_ptr.*)) continue :it_map; |
| 422 | 422 | } |
| 423 | | if (kv.value.Object.get("Name").?.String.len == 0) continue; |
| 424 | | try all_objects.append(&kv.value.Object); |
| 423 | if (kv.value_ptr.Object.get("Name").?.String.len == 0) continue; |
| 424 | try all_objects.append(&kv.value_ptr.Object); |
| 425 | 425 | } |
| 426 | 426 | } |
| 427 | 427 | // Some options have multiple matches. As an example, "-Wl,foo" matches both |