示例#1
0
static Res EPVMSegDescribe(Seg seg, mps_lib_FILE *stream)
{
  Res res;
  EPVMSeg epvmSeg;
  SegClass super;

  /* .describe.check: Debugging tools don't AVER things. */
  if (!CHECKT(Seg, seg)) 
    return ResFAIL;
  if (stream == NULL) 
    return ResFAIL;
  epvmSeg = Seg2EPVMSeg(seg);
  if (!CHECKT(EPVMSeg, epvmSeg)) 
    return ResFAIL;

  /* Describe the superclass fields first via next-method call */
  super = SEG_SUPERCLASS(EPVMSegClass);
  res = super->describe(seg, stream);
  if (res != ResOK)
    return res;

  res = WriteF(stream,
               "  save $P\n", (WriteFP)epvmSeg->save,
               NULL);
  return res;
}
static Res ArenaTrivDescribe(Arena arena, mps_lib_FILE *stream)
{
    if (!CHECKT(Arena, arena)) return ResFAIL;
    if (stream == NULL) return ResFAIL;

    return WriteF(stream,
                  "  No class-specific description available.\n", NULL);
}