string.c (rb_str_justify): use RB_GC_GUARD
See doc/extension.rdoc for justification using RB_GC_GUARD instead of volatile. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
8b0cfe9042
commit
a12fb26ff7
@ -1,3 +1,7 @@
|
|||||||
|
Wed Jun 24 16:05:42 2015 Eric Wong <e@80x24.org>
|
||||||
|
|
||||||
|
* string.c (rb_str_justify): use RB_GC_GUARD
|
||||||
|
|
||||||
Wed Jun 24 14:25:17 2015 Koichi Sasada <ko1@atdot.net>
|
Wed Jun 24 14:25:17 2015 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
* gc.c (gc_mark_ptr): add a check code for #11244.
|
* gc.c (gc_mark_ptr): add a check code for #11244.
|
||||||
|
4
string.c
4
string.c
@ -7908,7 +7908,7 @@ rb_str_justify(int argc, VALUE *argv, VALUE str, char jflag)
|
|||||||
char *p;
|
char *p;
|
||||||
const char *f = " ";
|
const char *f = " ";
|
||||||
long n, size, llen, rlen, llen2 = 0, rlen2 = 0;
|
long n, size, llen, rlen, llen2 = 0, rlen2 = 0;
|
||||||
volatile VALUE pad;
|
VALUE pad;
|
||||||
int singlebyte = 1, cr;
|
int singlebyte = 1, cr;
|
||||||
|
|
||||||
rb_scan_args(argc, argv, "11", &w, &pad);
|
rb_scan_args(argc, argv, "11", &w, &pad);
|
||||||
@ -7985,6 +7985,8 @@ rb_str_justify(int argc, VALUE *argv, VALUE str, char jflag)
|
|||||||
cr = ENC_CODERANGE_AND(cr, ENC_CODERANGE(pad));
|
cr = ENC_CODERANGE_AND(cr, ENC_CODERANGE(pad));
|
||||||
if (cr != ENC_CODERANGE_BROKEN)
|
if (cr != ENC_CODERANGE_BROKEN)
|
||||||
ENC_CODERANGE_SET(res, cr);
|
ENC_CODERANGE_SET(res, cr);
|
||||||
|
|
||||||
|
RB_GC_GUARD(pad);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user