diff options
Diffstat (limited to 'lvm.c')
-rw-r--r-- | lvm.c | 17 |
1 files changed, 10 insertions, 7 deletions
@@ -93,7 +93,9 @@ static int l_strton (const TValue *obj, TValue *result) { | |||
93 | return 0; | 93 | return 0; |
94 | else { | 94 | else { |
95 | TString *st = tsvalue(obj); | 95 | TString *st = tsvalue(obj); |
96 | return (luaO_str2num(getstr(st), result) == tsslen(st) + 1); | 96 | size_t stlen; |
97 | const char *s = getlstr(st, stlen); | ||
98 | return (luaO_str2num(s, result) == stlen + 1); | ||
97 | } | 99 | } |
98 | } | 100 | } |
99 | 101 | ||
@@ -377,10 +379,10 @@ void luaV_finishset (lua_State *L, const TValue *t, TValue *key, | |||
377 | ** have different lengths. | 379 | ** have different lengths. |
378 | */ | 380 | */ |
379 | static int l_strcmp (const TString *ts1, const TString *ts2) { | 381 | static int l_strcmp (const TString *ts1, const TString *ts2) { |
380 | const char *s1 = getstr(ts1); | 382 | size_t rl1; /* real length */ |
381 | size_t rl1 = tsslen(ts1); /* real length */ | 383 | const char *s1 = getlstr(ts1, rl1); |
382 | const char *s2 = getstr(ts2); | 384 | size_t rl2; |
383 | size_t rl2 = tsslen(ts2); | 385 | const char *s2 = getlstr(ts2, rl2); |
384 | for (;;) { /* for each segment */ | 386 | for (;;) { /* for each segment */ |
385 | int temp = strcoll(s1, s2); | 387 | int temp = strcoll(s1, s2); |
386 | if (temp != 0) /* not equal? */ | 388 | if (temp != 0) /* not equal? */ |
@@ -630,8 +632,9 @@ static void copy2buff (StkId top, int n, char *buff) { | |||
630 | size_t tl = 0; /* size already copied */ | 632 | size_t tl = 0; /* size already copied */ |
631 | do { | 633 | do { |
632 | TString *st = tsvalue(s2v(top - n)); | 634 | TString *st = tsvalue(s2v(top - n)); |
633 | size_t l = tsslen(st); /* length of string being copied */ | 635 | size_t l; /* length of string being copied */ |
634 | memcpy(buff + tl, getstr(st), l * sizeof(char)); | 636 | const char *s = getlstr(st, l); |
637 | memcpy(buff + tl, s, l * sizeof(char)); | ||
635 | tl += l; | 638 | tl += l; |
636 | } while (--n > 0); | 639 | } while (--n > 0); |
637 | } | 640 | } |