Get or create a thread-local parser configured for the given language.
| 224 | |
| 225 | // Get or create a thread-local parser configured for the given language. |
| 226 | static TSParser *get_thread_parser(const TSLanguage *ts_lang, CBMLanguage lang) { |
| 227 | if (!tl_parser) { |
| 228 | tl_parser = ts_parser_new(); |
| 229 | if (!tl_parser) { |
| 230 | return NULL; |
| 231 | } |
| 232 | tl_parser_lang = CBM_LANG_COUNT; |
| 233 | } |
| 234 | if (tl_parser_lang != lang) { |
| 235 | ts_parser_set_language(tl_parser, ts_lang); |
| 236 | tl_parser_lang = lang; |
| 237 | } |
| 238 | return tl_parser; |
| 239 | } |
| 240 | |
| 241 | // --- Allocator binding (defense-in-depth, #424) --- |
| 242 |
no outgoing calls
no test coverage detected