fix a bug in CopyStringOut. dprintk appears to work again.

--HG--
extra : convert_revision : cd0d13a85ddc7599308db8604a8f63a48679cc05
This commit is contained in:
Ali Saidi 2006-10-13 14:28:46 -04:00
parent 339b1f8516
commit ca4063ac00

View file

@ -141,12 +141,12 @@ void
AlphaISA::CopyStringOut(ThreadContext *tc, char *dst, Addr vaddr, size_t maxlen) AlphaISA::CopyStringOut(ThreadContext *tc, char *dst, Addr vaddr, size_t maxlen)
{ {
int len = 0; int len = 0;
char *start = dst;
VirtualPort *vp = tc->getVirtPort(tc); VirtualPort *vp = tc->getVirtPort(tc);
do { do {
vp->readBlob(vaddr++, (uint8_t*)dst++, 1); vp->readBlob(vaddr++, (uint8_t*)dst++, 1);
len++; } while (len < maxlen && start[len++] != 0 );
} while (len < maxlen && dst[len] != 0 );
tc->delVirtPort(vp); tc->delVirtPort(vp);
dst[len] = 0; dst[len] = 0;