| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
-> 'toUInt32Long', add 'uint32LongtoInt'
|
|
|
|
| |
conversion functions
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We already have several locations where bitstream operations are required and
partially implemented (JPEG decoder, media parsing, ..)
as well as endian related conversion (elf parser, ..).
Create a versatile Bitstream class allowing:
- Utilize I/O operations on I/O streams, buffers and arrays
- Consider MSBfirst / LSBfirst mode
- Linear bit R/W operations
- Bulk R/W operations w/ endian related type conversion
- Allow mark/reset and switching streams and input/output mode
- Optimized operations
Complete set of unit tests included, covering hopefully all cases.
|
|
|
|
| |
ReflectionUtil's forName(..) usage
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'best' ABI
- Use 'os.arch' as a prelim CPUType for MachineDescription
- Always attempt to load a binary and parse it's elf header
- Linux: self-exe
- Android: gluegen-rt library
- Other: java lib
- Always use details (ABI) if ARM
- Android: Check CPU_TYPE and CPU_TYPE2
// FIXME / HACK:
// We use sCPUType for MachineDescriptionRuntime.getStatic()
// until we have determined the final CPU_TYPE, etc.
// MachineDescriptionRuntime gets notified via MachineDescriptionRuntime.notifyPropsInitialized() below.
//
// We could use Elf Ehdr's machine value to determine the bit-size
// used for it's offset table!
// However, 'os.arch' should be a good guess for this task.
Tested manually on
- Linux x86, x86_64, armhf (raspi)
- Android intel and arm
- Windows x86_64
- OSX x86_64
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
converting to file-path or URI (Windows UNC / share host)
Note: Authority for 'file-scheme' URI's is used on Windows to denote the host of the shared resource -> UNC
Following methods of IOUtil didn't consider the authority for file-scheme URI:
'URL toURL(final URI uri)'
'String decodeURIToFilePath(final String uriPath)'
'String decodeURIIfFilePath(final URI uri)'
Further more, the patterns 'patternSingleFS' and 'patternSingleBS'
converted multiple '\' '/' to one replacement.
However, we should not change the separator count and replace them one-by-one.
TestIOUtilURIHandling:
- Added shared-file-host 'filehost' test cases to file URIs and plain file path tests.
- Passed on Unix and Windows.
Added 'make/scripts/test-win32-smb_share.bat'
- Testing actual windows share usage
- Passed on Windows
|
|
|
|
| |
element, allowing to add custom API doc lines per method for the JavaMethodBindingEmitter
|
|
|
|
| |
Deprecate flush()
|
|
|
|
| |
right-shift '>>>'
|
|
|
|
|
|
| |
Just directly call the copy-constructor and avoid using clone.
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Changes emitted code from:
if (__addr_ == 0) {
throw new Exception("Method \"" + "$methodName" + "\" not available");
to:
if (__addr == 0) {
throw new Exception(String.format("Method \"%s\" not available", "$methodName"));
This removes all the redundant error message parts for each error string and only
stores the unique method name in a string.
Signed-off-by: Harvey Harrison <[email protected]>
|
|
|
|
|
|
|
| |
Only use IOUtil.encodeToURI() if required,
i.e. 'new URI(String)' but not 'new URI(scheme, ...)' since the latter already encodes the path.
TestIOUtilURIHandling.test00BasicCoding() validates above findings.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IOUtil.decodeURIToFilePath(..) for native usage.
Refine comments, API doc.
toURL(..): Apply space conversion, decodeFromURI(..), on file-scheme path,
ensuring decoded space.
++
Add decodeURIToFilePath(String uriPath) and decodeURIToFilePath(URI uri)
Both methods shall simplify decoding a file-URI for native platform usage.
Tested in TestIOUtilURIHandling
+++
|
|
|
|
| |
JarUtil.getJarEntry(..)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
IOUtil.toURISimple ; DEBUG: stdout -> stderr
Add comments to slashify(..) arguments for better documentation.
+++
Use validated File @ IOUtil.toURISimple(..):
slashify(file, true, isDirectory)
to
slashify(new File(path).getAbsolutePath(), true, isDirectory)
i.e. same w/ above variant and determine absolute path via File instance.
+++
DEBUG: stdout -> stderr
|
| |
|
| |
|
|
|
|
| |
and resource name (Remove Ubuntu fonts from jogl-all.jar, provide it separately to reduce footprint for the masses.)
|
|
|
|
|
|
|
| |
if !isInit (dbl-check locking)
- isInit must be set to 'true' _after_ actual initialization, so caller can be blocked until done
- staticInitError must be volatile as well
|
|
|
|
|
|
|
|
|
| |
on 'PluginProcess.app'
- IOUtil.getTempDir(..): Don't test executable caps on OSX for java_io_tmpdir
- JarUtil.extract(..): Issue native fixNativeLibAttribs(..) on OSX for native library files,
i.e. remove xattr 'com.apple.quarantine'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Netbeans's JarURLStreamHandler
- 'URL IOUtil.toURL(URI)'
- Needs to encode the file-path portion on Windows(*) if exists.
The file-path here shall only be encoded as follows:
- backslash -> slash
- ensure starting with slash
(*) We perform above action for all OS,
if 'false == File.separator.equals("/")'
- Added high verbosity in DEBUG mode to easy debugging
for future cases ..
- Cleanup URI/URL unit tests, i.e. split URLCompositionTest into:
- TestIOUtilURICompose
- TestIOUtilURIHandling (Now covers Bug 857 as well)
- TestUrisWithAssetHandler
- TestURIQueryProps
Tested all unit tests manually on GNU/Linux and Windows w/ JRE 7u45
|
|
|
|
| |
Signed-off-by: Harvey Harrison <[email protected]>
|
|
|
|
| |
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
|
| |
|
|\
| |
| | |
Buffers.java - spelling (lenght -> length) - thx
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
when compiling new URI.
Add IOUtil:
- String encodeToURI(String)
- String decodeFromURI(String)
Both only handle escaping of SPACE only. Determine whether other chars need to be treated.
|
| |
| |
| |
| | |
string representation.
|
| |
| |
| |
| | |
sun.java2d.noddraw, sun.java2d.d3d, sun.awt.noerasebackground
|
| |
| |
| |
| | |
IOUtil.toURL(..) handle exception at 'new File(uri)'
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Always use the jar-basename when calling TempJarCache.addNativeLibs(..),
otherwise it is mapped and loaded multiple times leading to different native libraries.
Simplify addNativeJarLibsImpl(..) argument semantics by passing complete jarBasename
and nativeJarBasename (w/ suffix).
Added manual test scripts validating [gluegen + jogl] usage
with multi (Bug 843) and fat (Bug 845) jar configurations.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
'os.and.arch' libraries]
JNILibLoaderBase.addNativeJarLibsImpl(..):
If the modules's jar file contains the folder 'natives/<os.and.arch>/'
we assume a big-fat jar and attempt to load all native libraries from the same.
The test for above folder is performed via the class ClassLoader's getResource(..)
and is considered inexpensive.
If the folder exists and native libraries could be loaded, the method returns successfull.
Otherwise, the 'slim' jar file is attempted to be loaded, even if such folder exist.
|
| |
| |
| |
| | |
native URI root and jar file.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
TempJarCache.bootstrapNativeLib(), allowing versatile use of 1st native jar file (big-java-jar w/ big-native-jar)
The remaining Platform dependency existed in IOUtil.copyStream2Stream(..), used by JarUtil.extract(..),
i.e. the MachineDescription's PAGE_SIZE.
Solved by using a const buffer size of 4096 bytes.
|
| |
| |
| |
| | |
is >= 1.7.0u40
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This saves repeated lookups of the value mapped to each key by just looping
over the entries directly.
Also remove the URIException clause as this method never can throw that exception.
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| | |
Signed-off-by: Harvey Harrison <[email protected]>
|
| |
| |
| |
| | |
module dependencies, added more API doc.
|
| | |
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
simple approach; Split 'grow' into 'growEmpty' and 'growFull'
- java.lang.reflect.Array can instantiate an array w/ a given array-type and length
- array-type is Class<? extends T[]>
- We either deduct the array-type via array.getClass(), or pass it (ctor for empty Ringbuffer).
- Split 'growBuffer(T[] newElements, int amount, ..)' into:
- 'growEmptyBuffer(T[] newElements)'
- 'growFullBuffer(int amount)'
Allowing a more clean API w/ simpler semantics.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SyncedRingbuffer and lock-free LFRingbuffer.
SyncedRingbuffer is moved from JOGL to GlueGen, and generalized w/ common interface Ringbuffer
to allow testing diff. implementations.
- Added Ringbuffer.AllocEmptyArray factory interface, allowing to pass a constructor
to construct the generic array.
- Added functionality is growBuffer(..), allowing to either grow a full or empty buffer,
using Ringbuffer.AllocEmptyArray.
- Removed explicit 'clearRef' at get*(..), always clear the taken reference for better
interface generalization.
- Added LFRingbuffer, exposing lock-free get*(..) and put*(..) methods
using the 'Always Keep One Slot Open' pattern using the read/write index as barriers only.
- Ctor's copy an optional passed user array into the internal array,
utilizing Ringbuffer.AllocEmptyArray.
- Added unit tests.
|
|
|
|
| |
methods, based on 'gettimeofday(..)'
|
|
|
|
|
|
|
| |
required - and it deadlocks AWT/NEWT jogl/joal lib loading.
Introduced w/ commits 1c03dfd6d1939a46018583419956e350e531f4fe
and e9e61421ef6009e6788998c471d1d3d30aaefea6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
calling 'PropertyAccess.isPropertyDefined(propName, default)' through Debug class.
Calling 'Debug.isPropertyDefined(propName, default)' may be 'optimized' to
'PropertyAccess.isPropertyDefined(propName, default)', which would skip the modules Debug's class initialization.
Iff that happens, an AccessControlException may happen, due to requesting an insecure property,
since modules own Debug class has not been added it's trusted prefixes from within it's init block yet.
This seems to be a bug of the JVM .. to me, however .. the above description is the only
able to explain the issue at hand.
+++
Fix calls Debug class own static methods, either Debug.initSingleton() or Debug.debug(),
before calling 'isPropertyDefined(propName, default)'.
+++
Also mark Debug class static methods final!
+++
|