I see that the index is passed to the JNI laver via the BWAIndex object. Really though I think only the pointer is actually used. Can it be passed directly rather then passing a Java object that needs to be unwrapped in the C layer? I mean changing this API
private native AlnRgn[] align(BwaIndex bwaIndex,byte bases[]) throws IOException;
private native String[] align2(BwaIndex bwaIndex,final ShortRead ks1[],final ShortRead ks2[]) throws IOException;
to
private native AlnRgn[] align(long bwaIndexPtr,byte bases[]) throws IOException;
private native String[] align2(long bwaIndexPtr,final ShortRead ks1[],final ShortRead ks2[]) throws IOException;
I see that the index is passed to the JNI laver via the BWAIndex object. Really though I think only the pointer is actually used. Can it be passed directly rather then passing a Java object that needs to be unwrapped in the C layer? I mean changing this API
to