(
builder: LowLevelIRBuilder, base: Value, index: Value, item: Value, line: int
)
| 339 | |
| 340 | |
| 341 | def vec_set_item( |
| 342 | builder: LowLevelIRBuilder, base: Value, index: Value, item: Value, line: int |
| 343 | ) -> None: |
| 344 | assert isinstance(base.type, RVec) |
| 345 | vtype = base.type |
| 346 | len_val = vec_len(builder, base) |
| 347 | index = vec_check_and_adjust_index(builder, len_val, index, line) |
| 348 | index = builder.coerce(index, c_pyssize_t_rprimitive, line) |
| 349 | item_addr = vec_item_ptr(builder, base, index) |
| 350 | item_type = vtype.item_type |
| 351 | item = builder.coerce(item, item_type, line) |
| 352 | if item_type.is_refcounted: |
| 353 | # Read an unborrowed reference to cause a decref to be |
| 354 | # generated for the old item. |
| 355 | old_item = vec_load_mem_item(builder, item_addr, item_type, can_borrow=True) |
| 356 | builder.add(DecRef(old_item)) |
| 357 | vec_set_mem_item(builder, item_addr, item_type, item) |
| 358 | builder.keep_alive([base], line) |
| 359 | |
| 360 | |
| 361 | def vec_init_item_unsafe( |
no test coverage detected
searching dependent graphs…