[OpenJDK 2D-Dev] RFR: (JDK-8068619) - remove internal layout function to match ICU and harfbuzz
Steven Loomis
steven.loomis at oracle.com
Thu Feb 26 19:18:17 UTC 2015
Should be a fairly simple request, deletes a function (unused by the
JDK) which was removed from ICU and harfbuzz for security purposes.
cc: to the harfbuzz-dev list, I am requesting to land this in jdk9 first
as it is not strictly harfbuzz related.
To be removed:
virtual const void *LEFontInstance::getFontTable(LETag tableTag)
const = 0;
This version returns the address of memory without any size indication.
Rationale is for syncup with ICU and with Harfbuzz's version of this API.
The version used by the JDK takes a size_t length.
Again this function is NOT called anywhere in the JDK, and is internal
as far as JDK's API goes.
Bug:https://bugs.openjdk.java.net/browse/JDK-8068619
cr.openjdk.java.net locked me out after one successful post. So the
main .h change is at this URL:
http://cr.openjdk.java.net/~srl/8068619/webrev.0/
And the complete patch ( webrev.2) is below.. I will repost it to cr
once cr lets me back in.
------------------
---
old/jdk/src/java.desktop/share/native/libfontmanager/FontInstanceAdapter.cpp
2015-02-26 11:12:45.113980779 -0800
+++
new/jdk/src/java.desktop/share/native/libfontmanager/FontInstanceAdapter.cpp
2015-02-26 11:12:44.974981686 -0800
@@ -67,12 +67,6 @@
};
-const void *FontInstanceAdapter::getFontTable(LETag tableTag) const
-{
- size_t ignored = 0;
- return getFontTable(tableTag, ignored);
-}
-
static const LETag cacheMap[LAYOUTCACHE_ENTRIES] = {
GPOS_TAG, GDEF_TAG, GSUB_TAG, MORT_TAG, MORX_TAG, KERN_TAG
};
---
old/jdk/src/java.desktop/share/native/libfontmanager/FontInstanceAdapter.h
2015-02-26 11:12:45.548977941 -0800
+++
new/jdk/src/java.desktop/share/native/libfontmanager/FontInstanceAdapter.h
2015-02-26 11:12:45.394978946 -0800
@@ -85,7 +85,6 @@
// tables are cached with the native font scaler data
// only supports gsub, gpos, gdef, mort tables at present
- virtual const void *getFontTable(LETag tableTag) const;
virtual const void *getFontTable(LETag tableTag, size_t &len) const;
virtual void *getKernPairs() const {
---
old/jdk/src/java.desktop/share/native/libfontmanager/layout/LEFontInstance.h
2015-02-26 11:12:46.042974718 -0800
+++
new/jdk/src/java.desktop/share/native/libfontmanager/layout/LEFontInstance.h
2015-02-26 11:12:45.881975768 -0800
@@ -181,28 +181,6 @@
*
* Subclasses which represent composite fonts should always return
<code>NULL</code>.
*
- * Note that implementing this function does not allow for range
checking.
- * Subclasses that desire the safety of range checking must
implement the
- * variation which has a length parameter.
- *
- * @param tableTag - the four byte table tag. (e.g. 'cmap')
- *
- * @return the address of the table in memory, or <code>NULL</code>
- * if the table doesn't exist.
- *
- * @stable ICU 2.8
- */
- virtual const void *getFontTable(LETag tableTag) const = 0;
-
- /**
- * This method reads a table from the font. Note that in general,
- * it only makes sense to call this method on an
<code>LEFontInstance</code>
- * which represents a physical font - i.e. one which has been
returned by
- * <code>getSubFont()</code>. This is because each subfont in a
composite font
- * will have different tables, and there's no way to know which
subfont to access.
- *
- * Subclasses which represent composite fonts should always return
<code>NULL</code>.
- *
* This version sets a length, for range checking.
* Note that range checking can only be accomplished if this
function is
* implemented in subclasses.
@@ -213,7 +191,7 @@
* if the table doesn't exist.
* @internal
*/
- virtual const void* getFontTable(LETag tableTag, size_t &length)
const { length=-1; return getFontTable(tableTag); } /* -1 = unknown
length */
+ virtual const void* getFontTable(LETag tableTag, size_t &length)
const = 0;
virtual void *getKernPairs() const = 0;
virtual void setKernPairs(void *pairs) const = 0;
More information about the 2d-dev
mailing list