| 13493 | return code_object; |
| 13494 | } |
| 13495 | static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { |
| 13496 | int pos, i; |
| 13497 | __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; |
| 13498 | if (unlikely(!code_line)) { |
| 13499 | return; |
| 13500 | } |
| 13501 | if (unlikely(!entries)) { |
| 13502 | entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); |
| 13503 | if (likely(entries)) { |
| 13504 | __pyx_code_cache.entries = entries; |
| 13505 | __pyx_code_cache.max_count = 64; |
| 13506 | __pyx_code_cache.count = 1; |
| 13507 | entries[0].code_line = code_line; |
| 13508 | entries[0].code_object = code_object; |
| 13509 | Py_INCREF(code_object); |
| 13510 | } |
| 13511 | return; |
| 13512 | } |
| 13513 | pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); |
| 13514 | if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { |
| 13515 | PyCodeObject* tmp = entries[pos].code_object; |
| 13516 | entries[pos].code_object = code_object; |
| 13517 | Py_DECREF(tmp); |
| 13518 | return; |
| 13519 | } |
| 13520 | if (__pyx_code_cache.count == __pyx_code_cache.max_count) { |
| 13521 | int new_max = __pyx_code_cache.max_count + 64; |
| 13522 | entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( |
| 13523 | __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); |
| 13524 | if (unlikely(!entries)) { |
| 13525 | return; |
| 13526 | } |
| 13527 | __pyx_code_cache.entries = entries; |
| 13528 | __pyx_code_cache.max_count = new_max; |
| 13529 | } |
| 13530 | for (i=__pyx_code_cache.count; i>pos; i--) { |
| 13531 | entries[i] = entries[i-1]; |
| 13532 | } |
| 13533 | entries[pos].code_line = code_line; |
| 13534 | entries[pos].code_object = code_object; |
| 13535 | __pyx_code_cache.count++; |
| 13536 | Py_INCREF(code_object); |
| 13537 | } |
| 13538 | |
| 13539 | /* AddTraceback */ |
| 13540 | #include "compile.h" |
no test coverage detected