On Wed, 21 May 2025 13:24:32 GMT, Kevin Rushforth <k...@openjdk.org> wrote:

> PR to replace the use of sun.misc.Unsafe memory access methods in the Marlin 
> rasterizer with FFM.
> 
> I broke this up into the following commits. The bulk of the work is in the 
> first two:
> 
> 1. Encapsulate all off-heap access in OffHeapArray -- All of the memory 
> allocation and management was already done in the OffHeapArray class, but the 
> users of OffHeapArray, primarily Renderer and RendererNoAA, called Unsafe 
> methods directly. I encapsulated all of the calls to Unsafe in OffHeapArray. 
> The main impact on calling code is that the base address is no longer 
> accessible or needed. Instead, the `(put|get)(Byte|Int)` methods take only an 
> offset. This commit was straight refactoring with no behavioral changes.
> 2. Initial FFM implementation -- I changed the memory management and access 
> methods to use FFM. Each OffHeap array uses a shared Arena to manage the 
> single memory segment allocated at construction time. The resize method 
> creates a new Arena and memory segment, copying the data from the old and 
> then closing it
> 3. Set `used` to 0 in `dispose()` -- While testing and instrumenting the 
> code, I discovered that the Renderer dispose methods resize the edges array 
> back to the default size without clearing the "used" field. The used field 
> will be cleared before the next time it is accessed, but clearing it in 
> dispose allows optimizing resize to not copy any data.
> 4. Remove '--sun-misc-unsafe-memory-access=allow' from test and app 
> execution, since it is no longer needed. This also enables `-Werror` for the 
> `javafx.graphics` module.
> 5. ~~Temporary debug prints that will be removed before making this "rfr"~~
> 
> Additional commits address review comments.

This pull request has now been integrated.

Changeset: 72c1c21a
Author:    Kevin Rushforth <k...@openjdk.org>
URL:       
https://git.openjdk.org/jfx/commit/72c1c21a76ba752439c877aba599b0b5f8bf9332
Stats:     332 lines in 13 files changed: 95 ins; 100 del; 137 mod

8334137: Marlin: replace sun.misc.Unsafe memory access methods with FFM

Reviewed-by: angorya, prr, lbourges

-------------

PR: https://git.openjdk.org/jfx/pull/1814

Reply via email to