void dumpJstring(O obj) { Assert_ASSERT(obj); Assert_ASSERT(value_offset); O c = OBJECT_DATA(obj, value_offset - 1, O); dumpChar(c); }
void dumpPtd( __bytefield__ *f, __WORD__ pos ) { __WORD__ addr = (__WORD__)f->field + pos; __BWORD__ bptd = __boxptd(_A1_, addr); __WORD__ nextpos = pos; __WORD__ slen; __WORD__ stail; __WORD__ spad; switch (__boxsubtype(_A1_, bptd)) { case __VEC_TYPE__: dumpVec(f, pos); nextpos += (__unboxint(_A1_, __vectorLength(_A1_, bptd)) * __WORDSIZE__) + sizeof(__vector__); break; case __STR_TYPE__: dumpStr(f, pos); slen = __unboxint(_A1_, __stringLength(_A1_, bptd)) + 1; stail = (slen % __WORDSIZE__); spad = 0; if (stail != 0) spad = __WORDSIZE__ - stail; nextpos += slen + spad + sizeof(__string__); break; case __CHAR_TYPE__: dumpChar(f, pos); nextpos += sizeof(__char__); break; default: printf("Unrecognized object type."); exit(__FAIL__); } dumpObject(f, nextpos); }