MCPcopy Create free account
hub / github.com/python/mypy / vec_set_item

Function vec_set_item

mypyc/irbuild/vec.py:341–358  ·  view source on GitHub ↗
(
    builder: LowLevelIRBuilder, base: Value, index: Value, item: Value, line: int
)

Source from the content-addressed store, hash-verified

339
340
341def 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
361def vec_init_item_unsafe(

Callers 1

assignMethod · 0.90

Calls 10

DecRefClass · 0.90
isinstanceFunction · 0.85
vec_lenFunction · 0.85
vec_item_ptrFunction · 0.85
vec_load_mem_itemFunction · 0.85
vec_set_mem_itemFunction · 0.85
keep_aliveMethod · 0.80
coerceMethod · 0.45
addMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…