protected function readBinaryArray($length)
    {
        $ary = new CFArray();

      // first: read object refs
        if ($length != 0) {
            if (strlen($buff = substr($this->content, $this->pos, $length * $this->objectRefSize)) != $length * $this->objectRefSize) {
                throw IOException::readError("");
            }
            $this->pos += $length * $this->objectRefSize;

            $objects = self::unpackWithSize($this->objectRefSize, $buff);

          // now: read objects
            for ($i=0; $i<$length; ++$i) {
                $object = $this->readBinaryObjectAt($objects[$i+1]+1);
                $ary->add($object);
            }
        }

        return $ary;
    }