allowed BOB in concat op

This commit is contained in:
2025-07-12 03:15:09 +09:00
parent 955210800e
commit febcaa8708
2 changed files with 12 additions and 5 deletions

View File

@ -6262,6 +6262,7 @@ static hawk_val_t* eval_binop_concat (hawk_rtx_t* rtx, hawk_val_t* left, hawk_va
{
case HAWK_VAL_BCHR:
case HAWK_VAL_MBS:
case HAWK_VAL_BOB:
{
hawk_bcs_t l, r;

View File

@ -2319,14 +2319,20 @@ hawk_bch_t* hawk_rtx_valtobcstrdupwithcmgr (hawk_rtx_t* rtx, const hawk_val_t* v
{
hawk_bch_t tmp = HAWK_RTX_GETBCHRFROMVAL(rtx, v);
mbs = hawk_rtx_dupbchars(rtx, &tmp, 1);
if (!mbs) return HAWK_NULL;
if (HAWK_UNLIKELY(!mbs)) return HAWK_NULL;
if (len) *len = 1;
break;
}
case HAWK_VAL_MBS:
mbs = hawk_rtx_dupbchars(rtx, ((hawk_val_mbs_t*)v)->val.ptr, ((hawk_val_mbs_t*)v)->val.len);
if (!mbs) return HAWK_NULL;
if (HAWK_UNLIKELY(!mbs)) return HAWK_NULL;
if (len) *len = ((hawk_val_mbs_t*)v)->val.len;
break;
case HAWK_VAL_BOB:
mbs = hawk_rtx_dupbchars(rtx, (hawk_bch_t*)((hawk_val_bob_t*)v)->val.ptr, ((hawk_val_bob_t*)v)->val.len);
if (HAWK_UNLIKELY(!mbs)) return HAWK_NULL;
if (len) *len = ((hawk_val_mbs_t*)v)->val.len;
break;
@ -2350,14 +2356,14 @@ hawk_bch_t* hawk_rtx_valtobcstrdupwithcmgr (hawk_rtx_t* rtx, const hawk_val_t* v
}
#if defined(HAWK_OOCH_IS_BCH)
mbs = hawk_rtx_dupbchars(rtx, ptr, slen);
if (!mbs) return HAWK_NULL;
if (HAWK_UNLIKELY(!mbs)) return HAWK_NULL;
if (len) *len = slen;
#else
{
hawk_oow_t mbslen, wcslen;
wcslen = slen;
mbs = hawk_rtx_duputobcharswithcmgr(rtx, ptr, wcslen, &mbslen, cmgr);
if (!mbs) return HAWK_NULL;
if (HAWK_UNLIKELY(!mbs)) return HAWK_NULL;
if (len) *len = mbslen;
}
#endif
@ -2384,7 +2390,7 @@ hawk_bch_t* hawk_rtx_valtobcstrdupwithcmgr (hawk_rtx_t* rtx, const hawk_val_t* v
mbs = hawk_rtx_duputobcharswithcmgr(rtx, out.u.cpldup.ptr, out.u.cpldup.len, &mbslen, cmgr);
hawk_rtx_freemem (rtx, out.u.cpldup.ptr);
if (!mbs) return HAWK_NULL;
if (HAWK_UNLIKELY(!mbs)) return HAWK_NULL;
if (len) *len = mbslen;
#endif
break;