|
1 | 1 | #include "ruby.h" |
2 | 2 | #include "ruby/encoding.h" |
3 | 3 |
|
| 4 | +#ifndef HAVE_RB_LEN_T |
| 5 | +typedef long rb_len_t; |
| 6 | +# define RB_LEN_MAX LONG_MAX |
| 7 | +#endif |
| 8 | + |
4 | 9 | RUBY_EXTERN unsigned long ruby_scan_digits(const char *str, ssize_t len, int base, size_t *retlen, int *overflow); |
5 | 10 | RUBY_EXTERN const char ruby_hexdigits[]; |
6 | 11 | RUBY_EXTERN const signed char ruby_digit36_to_number_table[]; |
@@ -32,11 +37,11 @@ preserve_original_state(VALUE orig, VALUE dest) |
32 | 37 | rb_enc_associate(dest, rb_enc_get(orig)); |
33 | 38 | } |
34 | 39 |
|
35 | | -static inline long |
| 40 | +static inline rb_len_t |
36 | 41 | escaped_length(VALUE str) |
37 | 42 | { |
38 | | - const long len = RSTRING_LEN(str); |
39 | | - if (len >= LONG_MAX / HTML_ESCAPE_MAX_LEN) { |
| 43 | + const rb_len_t len = RSTRING_LEN(str); |
| 44 | + if (len >= RB_LEN_MAX / HTML_ESCAPE_MAX_LEN) { |
40 | 45 | ruby_malloc_size_overflow(len, HTML_ESCAPE_MAX_LEN); |
41 | 46 | } |
42 | 47 | return len * HTML_ESCAPE_MAX_LEN; |
@@ -83,7 +88,7 @@ optimized_unescape_html(VALUE str) |
83 | 88 | unsigned long charlimit = (strcasecmp(rb_enc_name(enc), "UTF-8") == 0 ? UNICODE_MAX : |
84 | 89 | strcasecmp(rb_enc_name(enc), "ISO-8859-1") == 0 ? 256 : |
85 | 90 | 128); |
86 | | - long i, j, len, beg = 0; |
| 91 | + rb_len_t i, j, len, beg = 0; |
87 | 92 | size_t clen, plen; |
88 | 93 | int overflow; |
89 | 94 | const char *cstr; |
@@ -221,7 +226,7 @@ url_unreserved_char(unsigned char c) |
221 | 226 | static VALUE |
222 | 227 | optimized_escape(VALUE str, int plus_escape) |
223 | 228 | { |
224 | | - long i, len, beg = 0; |
| 229 | + rb_len_t i, len, beg = 0; |
225 | 230 | VALUE dest = 0; |
226 | 231 | const char *cstr; |
227 | 232 | char buf[4] = {'%'}; |
@@ -263,7 +268,7 @@ optimized_escape(VALUE str, int plus_escape) |
263 | 268 | static VALUE |
264 | 269 | optimized_unescape(VALUE str, VALUE encoding, int unescape_plus) |
265 | 270 | { |
266 | | - long i, len, beg = 0; |
| 271 | + rb_len_t i, len, beg = 0; |
267 | 272 | VALUE dest = 0; |
268 | 273 | const char *cstr; |
269 | 274 | rb_encoding *enc = rb_to_encoding(encoding); |
|
0 commit comments