diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2019-12-01 01:35:30 -0800 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-12-01 01:35:31 -0800 |
commit | 8a677a6e80b3b7e1f52073b362083a78eb87397f (patch) | |
tree | 3c5b25f9653d85da83b3ac1b3c499adfa3d5c943 /mjit.c | |
parent | 3e2753ad2e0b643f5c731fb162f5805d82435032 (diff) | |
download | ruby-8a677a6e80b3b7e1f52073b362083a78eb87397f.tar.gz |
Workaround missing strndup on Windows
https://ci.appveyor.com/project/ruby/ruby/builds/29230976/job/c910t37313edb97k
Diffstat (limited to 'mjit.c')
-rw-r--r-- | mjit.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -700,6 +700,16 @@ start_worker(void) return true; } +// There's no strndup on Windows +static char* +ruby_strndup(char *str, size_t n) +{ + char *ret = xmalloc(n + 1); + memcpy(ret, str, n); + ret[n] = '\0'; + return ret; +} + // Convert "foo bar" to {"foo", "bar", NULL} array. Caller is responsible for // freeing a returned buffer and its elements. static char ** @@ -716,7 +726,7 @@ split_flags(char *flags) } else { if (next > flags) - buf[i++] = strndup(flags, next - flags); + buf[i++] = ruby_strndup(flags, next - flags); next++; // skip space } } |