diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-02-23 16:06:28 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-02-23 16:06:28 +0100 |
commit | 254ebaf068919407de6bd83ac905bd2f36ad944e (patch) | |
tree | 368d23e29a370c23c21a92b182f89cbe624c65f2 | |
parent | 48e330aff911be1c798c88a973af6437a8141fce (diff) | |
download | vim-254ebaf068919407de6bd83ac905bd2f36ad944e.zip |
patch 7.4.1400
Problem: Perl eval doesn't work properly on 64-bit big-endian machine.
Solution: Use 32 bit type for the key. (Danek Duvall)
-rw-r--r-- | src/if_perl.xs | 6 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/if_perl.xs b/src/if_perl.xs index 47c944039..9ca52917f 100644 --- a/src/if_perl.xs +++ b/src/if_perl.xs @@ -1097,7 +1097,7 @@ perl_to_vim(SV *sv, typval_T *rettv) case SVt_PVHV: /* dictionary */ { HE * entry; - size_t key_len; + I32 key_len; char * key; dictitem_T * item; SV * item2; @@ -1121,9 +1121,9 @@ perl_to_vim(SV *sv, typval_T *rettv) for (entry = hv_iternext((HV *)sv); entry; entry = hv_iternext((HV *)sv)) { key_len = 0; - key = hv_iterkey(entry, (I32 *)&key_len); + key = hv_iterkey(entry, &key_len); - if (!key || !key_len || strlen(key) < key_len) { + if (!key || !key_len || strlen(key) < (size_t)key_len) { EMSG2("Malformed key Dictionary '%s'", key && *key ? key : "(empty)"); break; } diff --git a/src/version.c b/src/version.c index e8226192e..3bcbd8d0d 100644 --- a/src/version.c +++ b/src/version.c @@ -749,6 +749,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1400, +/**/ 1399, /**/ 1398, |