This PR is based on a port of: openjdk/panama-foreign#898 Some additional changes are contained in this PR:
* instead of using a different "always alive" scope for zero-length memory segments, we now use the global scope * the javadoc for `MemorySegment::ofArray`, `MemorySegment::ofBuffer` and `SymbolLookup::loaderLookup` is tweaked to say that the scope associated to the returned segments is an automatic scope * the javadoc for `MemorySegment.Scope` defines the concepts of global and automatic scope, which are then referenced in the `Arena` javadoc. ------------- Commit messages: - Initial push Changes: https://git.openjdk.org/jdk/pull/16183/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=16183&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8317819 Stats: 147 lines in 11 files changed: 83 ins; 15 del; 49 mod Patch: https://git.openjdk.org/jdk/pull/16183.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/16183/head:pull/16183 PR: https://git.openjdk.org/jdk/pull/16183