parent
b567422f98
commit
839c052a93
1 changed files with 10 additions and 7 deletions
|
|
@ -205,7 +205,7 @@ convflt(Node *r, char *flt)
|
||||||
void
|
void
|
||||||
indir(Map *m, ulong addr, char fmt, Node *r)
|
indir(Map *m, ulong addr, char fmt, Node *r)
|
||||||
{
|
{
|
||||||
int i;
|
int i, j, k;
|
||||||
u32int ival;
|
u32int ival;
|
||||||
u64int vval;
|
u64int vval;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
@ -280,16 +280,19 @@ indir(Map *m, ulong addr, char fmt, Node *r)
|
||||||
break;
|
break;
|
||||||
case 'R':
|
case 'R':
|
||||||
r->type = TSTRING;
|
r->type = TSTRING;
|
||||||
for(i = 0; i < sizeof(buf)-2; i += 2) {
|
assert(sizeof(Rune) == 4);
|
||||||
ret = get1(m, addr, (uchar*)&buf[i], 2);
|
for(i = 0; i < sizeof(buf)-4; i += 4) {
|
||||||
|
ret = get4(m, addr, &ival);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
error("indir: %r");
|
error("indir: %r");
|
||||||
addr += 2;
|
rval = ival;
|
||||||
if(buf[i] == 0 && buf[i+1] == 0)
|
memmove(buf+i, &ival, 4);
|
||||||
|
addr += 4;
|
||||||
|
if(ival == 0)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
buf[i++] = 0;
|
ival = 0;
|
||||||
buf[i] = 0;
|
memmove(buf+i, &ival, 4);
|
||||||
r->store.u.string = runenode((Rune*)buf);
|
r->store.u.string = runenode((Rune*)buf);
|
||||||
break;
|
break;
|
||||||
case 'i':
|
case 'i':
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue