backwards compatibility - first check for jbigi.dll / libjbigi.so, then do the new stuff ("jbigi" in a jar, followed by "net/i2p/util/libjbigi-linux-pentium4.so", etc)

This commit is contained in:
jrandom
2004-08-21 09:29:18 +00:00
committed by zzz
parent bee9c7ee17
commit 3c772f1974

View File

@ -374,39 +374,46 @@ public class NativeBigInteger extends BigInteger {
String wantedProp = System.getProperty("jbigi.enable", "true"); String wantedProp = System.getProperty("jbigi.enable", "true");
boolean wantNative = "true".equalsIgnoreCase(wantedProp); boolean wantNative = "true".equalsIgnoreCase(wantedProp);
if (wantNative) { if (wantNative) {
boolean loaded = loadFromResource("jbigi"); boolean loaded = loadGeneric("jbigi");
if (loaded) { if (loaded) {
_nativeOk = true; _nativeOk = true;
if (_doLog) if (_doLog)
System.err.println("INFO: Locally optimized native BigInteger loaded from resource"); System.err.println("INFO: Locally optimized native BigInteger loaded from the library path");
} else { } else {
loaded = loadFromResource(true); loaded = loadFromResource("jbigi");
if (loaded) { if (loaded) {
_nativeOk = true; _nativeOk = true;
if (_doLog) if (_doLog)
System.err.println("INFO: Optimized native BigInteger library '"+getResourceName(true)+"' loaded from resource"); System.err.println("INFO: Locally optimized native BigInteger loaded from resource");
} else { } else {
loaded = loadGeneric(true); loaded = loadFromResource(true);
if (loaded) { if (loaded) {
_nativeOk = true; _nativeOk = true;
if (_doLog) if (_doLog)
System.err.println("INFO: Optimized native BigInteger library '"+getMiddleName(true)+"' loaded from somewhere in the path"); System.err.println("INFO: Optimized native BigInteger library '"+getResourceName(true)+"' loaded from resource");
} else { } else {
loaded = loadFromResource(false); loaded = loadGeneric(true);
if (loaded) { if (loaded) {
_nativeOk = true; _nativeOk = true;
if (_doLog) if (_doLog)
System.err.println("INFO: Non-optimized native BigInteger library '"+getResourceName(false)+"' loaded from resource"); System.err.println("INFO: Optimized native BigInteger library '"+getMiddleName(true)+"' loaded from somewhere in the path");
} else { } else {
loaded = loadGeneric(false); loaded = loadFromResource(false);
if (loaded) { if (loaded) {
_nativeOk = true; _nativeOk = true;
if (_doLog) if (_doLog)
System.err.println("INFO: Non-optimized native BigInteger library '"+getMiddleName(false)+"' loaded from somewhere in the path"); System.err.println("INFO: Non-optimized native BigInteger library '"+getResourceName(false)+"' loaded from resource");
} else { } else {
_nativeOk = false; loaded = loadGeneric(false);
} if (loaded) {
} _nativeOk = true;
if (_doLog)
System.err.println("INFO: Non-optimized native BigInteger library '"+getMiddleName(false)+"' loaded from somewhere in the path");
} else {
_nativeOk = false;
}
}
}
} }
} }
} }
@ -427,8 +434,10 @@ public class NativeBigInteger extends BigInteger {
* *
*/ */
private static final boolean loadGeneric(boolean optimized) { private static final boolean loadGeneric(boolean optimized) {
return loadGeneric(getMiddleName(optimized));
}
private static final boolean loadGeneric(String name) {
try { try {
String name = getMiddleName(optimized);
if(name == null) if(name == null)
return false; return false;
System.loadLibrary(name); System.loadLibrary(name);