static void Str_lc(MVMThreadContext *tc, MVMCallsite *callsite, MVMRegister *args) { MVMArgProcContext arg_ctx; arg_ctx.named_used = NULL; MVM_args_proc_init(tc, &arg_ctx, callsite, args); MVMObject* self = MVM_args_get_pos_obj(tc, &arg_ctx, 0, MVM_ARG_REQUIRED).arg.o; MVM_args_proc_cleanup(tc, &arg_ctx); MVM_gc_root_temp_push(tc, (MVMCollectable **)&self); MVMString * self_s = REPR(self)->box_funcs->get_str(tc, STABLE(self), self, OBJECT_BODY(self)); MVMString * result = MVM_string_lc(tc, (MVMString*)self_s); assert(result); MVM_args_set_result_str(tc, result, MVM_RETURN_CURRENT_FRAME); MVM_gc_root_temp_pop_n(tc, 1); }
MVMint64 MVM_string_equal_at_ignore_case(MVMThreadContext *tc, MVMString *a, MVMString *b, MVMint64 offset) { return MVM_string_equal_at(tc, MVM_string_lc(tc, a), MVM_string_lc(tc, b), offset); }