# HG changeset patch # User Christian Brabandt # Date 1456240505 -3600 # Node ID 51b4fba718bf10d5456ff8c9b5875b79485a92f9 # Parent f32121fdfaa7f9608e5eacd930bcc88b87176490 commit https://github.com/vim/vim/commit/254ebaf068919407de6bd83ac905bd2f36ad944e Author: Bram Moolenaar Date: Tue Feb 23 16:06:28 2016 +0100 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) diff --git a/src/if_perl.xs b/src/if_perl.xs --- 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 --- 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,