final int handle = decodeHandle();
clazz = _persistit.classForHandle(handle);
if (clazz == null) {
throw new ConversionException("No class information for handle " + handle);
}
final KeyCoder coder = _persistit.lookupKeyCoder(clazz);
if (coder == null) {
throw new ConversionException("No KeyCoder for class " + clazz.getName());
}
zeroByteFree = coder.isZeroByteFree();
segmentSize = unquoteNulls(index, zeroByteFree);
size = _size;
_size = index + segmentSize;
unquoted = true;
if (target == null) {
return coder.decodeKeySegment(this, clazz, context);
} else {
if (coder instanceof KeyRenderer) {
((KeyRenderer) coder).renderKeySegment(this, target, clazz, context);
return target;
} else {