--- old/src/java.desktop/share/classes/sun/java2d/marlin/RendererContext.java 2016-02-06 00:13:27.388318815 +0100 +++ new/src/java.desktop/share/classes/sun/java2d/marlin/RendererContext.java 2016-02-06 00:13:27.176318805 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -50,11 +50,14 @@ /** * Create a new renderer context * + * @param storageQueue true = queue storage; false = thread-Local storage * @return new RendererContext instance */ - static RendererContext createContext() { + static RendererContext createContext(final boolean storageQueue) { final RendererContext newCtx = new RendererContext("ctx" - + Integer.toString(contextCount.getAndIncrement())); + + Integer.toString(contextCount.getAndIncrement()), + storageQueue); + if (RendererContext.stats != null) { RendererContext.stats.allContexts.add(newCtx); } @@ -63,6 +66,13 @@ // context name (debugging purposes) final String name; + // true = queue storage; false = thread-Local storage + final boolean storageQueue; + /* + * Used flag indicating this thread-Local context is already used + * (used to detect reentrance) + */ + boolean usedTL = false; /* * Reference to this instance (hard, soft or weak). * @see MarlinRenderingEngine#REF_TYPE @@ -101,14 +111,16 @@ /** * Constructor * - * @param name + * @param name context name (debugging) + * @param storageQueue true = queue storage; false = thread-Local storage */ - RendererContext(final String name) { + RendererContext(final String name, final boolean storageQueue) { if (logCreateContext) { MarlinUtils.logInfo("new RendererContext = " + name); } this.name = name; + this.storageQueue = storageQueue; // NormalizingPathIterator instances: nPCPathIterator = new NormalizingPathIterator.NearestPixelCenter(float6);