diff options
Diffstat (limited to 'modules/regex')
| -rw-r--r-- | modules/regex/SCsub | 7 | ||||
| -rw-r--r-- | modules/regex/regex.cpp | 6 |
2 files changed, 8 insertions, 5 deletions
diff --git a/modules/regex/SCsub b/modules/regex/SCsub index 0fbdf97620..2dfc2739e9 100644 --- a/modules/regex/SCsub +++ b/modules/regex/SCsub @@ -8,8 +8,11 @@ env_regex.Append(CPPFLAGS=["-DPCRE2_CODE_UNIT_WIDTH=0"]) env_regex.add_source_files(env.modules_sources, "*.cpp") if (env['builtin_pcre2'] != 'no'): - thirdparty_dir = "#thirdparty/pcre2/src/" - thirdparty_flags = ["-DPCRE2_STATIC", "-DHAVE_CONFIG_H", "-DSUPPORT_JIT"] + jit_blacklist = ['javascript'] + thirdparty_dir = '#thirdparty/pcre2/src/' + thirdparty_flags = ['-DPCRE2_STATIC', '-DHAVE_CONFIG_H'] + if 'platform' in env and env['platform'] not in jit_blacklist: + thirdparty_flags.append('-DSUPPORT_JIT') thirdparty_sources = [ "pcre2_auto_possess.c", "pcre2_chartables.c", diff --git a/modules/regex/regex.cpp b/modules/regex/regex.cpp index 8afd01e20b..00e8ce0f54 100644 --- a/modules/regex/regex.cpp +++ b/modules/regex/regex.cpp @@ -309,7 +309,7 @@ Ref<RegExMatch> RegEx::search(const String &p_subject, int p_offset, int p_end) _pattern_info(PCRE2_INFO_NAMETABLE, &table); _pattern_info(PCRE2_INFO_NAMEENTRYSIZE, &entry_size); - for (int i = 0; i < count; i++) { + for (uint32_t i = 0; i < count; i++) { CharType id = table[i * entry_size]; if (result->data[id].start == -1) @@ -338,7 +338,7 @@ String RegEx::sub(const String &p_subject, const String &p_replacement, bool p_a PCRE2_SIZE olength = output.length(); PCRE2_SIZE length = p_subject.length(); - if (p_end >= 0 && p_end < length) + if (p_end >= 0 && (uint32_t)p_end < length) length = p_end; if (sizeof(CharType) == 2) { @@ -430,7 +430,7 @@ Array RegEx::get_names() const { _pattern_info(PCRE2_INFO_NAMETABLE, &table); _pattern_info(PCRE2_INFO_NAMEENTRYSIZE, &entry_size); - for (int i = 0; i < count; i++) { + for (uint32_t i = 0; i < count; i++) { String name = &table[i * entry_size + 1]; if (result.find(name) < 0) { |