diff --git a/ext/erb/escape/escape.c b/ext/erb/escape/escape.c index 9437e9694eda5f..1794fc30ebdce7 100644 --- a/ext/erb/escape/escape.c +++ b/ext/erb/escape/escape.c @@ -63,16 +63,13 @@ optimized_escape_html(VALUE str) dest += len; } } + VALUE escaped = str; if (buf) { size_t segment_len = cstr - segment_start; if (segment_len) { memcpy(dest, segment_start, segment_len); dest += segment_len; } - } - - VALUE escaped = str; - if (buf) { escaped = rb_str_new(buf, dest - buf); preserve_original_state(str, escaped); ALLOCV_END(vbuf); diff --git a/tool/m4/ruby_defint.m4 b/tool/m4/ruby_defint.m4 index e9ed68e5b83abb..7f262a73fc62c2 100644 --- a/tool/m4/ruby_defint.m4 +++ b/tool/m4/ruby_defint.m4 @@ -17,7 +17,8 @@ typedef $1 t; int s = sizeof(t) == 42;])], ["${ac_cv_sizeof___int128@%:@*:}"], [ rb_cv_type_$1="m4_if([$3], [], [], [$3 ])__int128"], [ rb_cv_type_$1=no])])]) AS_IF([test "${rb_cv_type_$1}" != no], [ - type="${rb_cv_type_$1@%:@@%:@unsigned }" + type="${rb_cv_type_$1@%:@@%:@*signed }" + AS_IF([test "$type" = "long long"], [type=long_long]) AS_IF([test "$type" != yes && eval 'test -n "${ac_cv_sizeof_'$type'+set}"'], [ eval cond='"${ac_cv_sizeof_'$type'}"' AS_CASE([$cond], [*:*], [