summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2016-02-23 16:06:28 +0100
committerBram Moolenaar <Bram@vim.org>2016-02-23 16:06:28 +0100
commit254ebaf068919407de6bd83ac905bd2f36ad944e (patch)
tree368d23e29a370c23c21a92b182f89cbe624c65f2
parent48e330aff911be1c798c88a973af6437a8141fce (diff)
downloadvim-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.xs6
-rw-r--r--src/version.c2
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,