Fill in panics in Str.split implementation

This commit is contained in:
Chad Stearns 2020-10-20 20:40:37 -04:00
parent aee1caa0e6
commit b3004a7862

View file

@ -44,29 +44,18 @@ pub fn str_split<'a, 'ctx, 'env>(
*delimiter_ptr, *delimiter_ptr,
str_wrapper_type, str_wrapper_type,
|_, delimiter_len, delimiter_smallness| { |_, delimiter_len, delimiter_smallness| {
let ret_list_len_alloca = let str_ = builder.build_load(*str_ptr, "get_str");
builder.build_alloca(ctx.i64_type(), "ret_list_len_alloca");
builder.build_store(ret_list_len_alloca, ctx.i64_type().const_zero()); let delimiter = builder.build_load(*delimiter_ptr, "get_delimiter");
let str: BasicValueEnum<'ctx> = panic!("Get str basic value enum"); let segment_count = call_bitcode_fn(env, &[str_, delimiter], "count_segments_")
let delimiter: BasicValueEnum<'ctx> = panic!("Get delimiter basic value enum"); .into_int_value();
let delimiter_count = let ret_list_ptr = allocate_list(env, inplace, &CHAR_LAYOUT, segment_count);
call_bitcode_fn(env, &[str, delimiter], "count_delimiters_")
.into_int_value();
let ret_list_len = builder.build_int_add( let ret_list = builder.build_load(ret_list_ptr, "get_str_split_ret_list");
delimiter_count,
ctx.i64_type().const_int(1, false),
"ret_str_split_list_Len",
);
let ret_list_ptr = allocate_list(env, inplace, &CHAR_LAYOUT, ret_list_len); call_bitcode_fn(env, &[ret_list, str_, delimiter], "str_split_")
let ret_list: BasicValueEnum<'ctx> = panic!("Get return list");
call_bitcode_fn(env, &[ret_list, str, delimiter], "str_split_")
}, },
) )
}, },