RFR: (JDK-8068619) - remove internal layout function to match ICU and harfbuzz
Steven Loomis
steven.loomis at oracle.com
Thu Mar 5 23:28:16 UTC 2015
Bug:https://bugs.openjdk.java.net/browse/JDK-8068619
webrev:http://cr.openjdk.java.net/~srl/8068619/webrev.3/
No change from before, just using cr.openjdk.java.net to host
NB ICU (and Harfbuzz) have already applied this change.
-s
On 2/26/2015 11:18 AM, Steven Loomis wrote:
> 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 harfbuzz-dev
mailing list