code: private void checkTopChunk(long p) {
      if (VALIDATING) {
        long sz = head(p) & ~INUSE_BITS; /* third-lowest bit can be set! */
        if (!isAligned(chunkToMem(p)))
          throw new AssertionError("Chunk address [mem:" + p + "=>chunk:" + chunkToMem(p) + "] of top chunk is incorrectly aligned");
        if (!okAddress(p))
          throw new AssertionError("Memory address " + p + " of top chunk is invalid");
        if (sz != topSize)
          throw new AssertionError("Marked size top chunk " + sz + " is not equals to the recorded top size " + topSize);
        if (sz <= 0)
          throw new AssertionError("Top chunk size " + sz + " is not positive");
        if (!previousInUse(p))
          throw new AssertionError("Chunk before top chunk is free - why has it not been merged in to the top chunk?");
      }
    }
docs: /* Check properties of top chunk