--- a/jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp Wed Oct 16 18:19:11 2013 -0700
+++ b/jdk/src/share/native/sun/font/layout/CursiveAttachmentSubtables.cpp Thu Oct 17 09:23:49 2013 -0700
@@ -51,23 +51,27 @@
}
LEPoint entryAnchor, exitAnchor;
- Offset entryOffset = SWAPW(entryExitRecords[coverageIndex].entryAnchor); // TODO
+ Offset entryOffset = SWAPW(entryExitRecords[coverageIndex].entryAnchor);
Offset exitOffset = SWAPW(entryExitRecords[coverageIndex].exitAnchor);
if (entryOffset != 0) {
- const AnchorTable *entryAnchorTable = (const AnchorTable *) ((char *) this + entryOffset);
+ LEReferenceTo<AnchorTable> entryAnchorTable(base, success, entryOffset);
- entryAnchorTable->getAnchor(glyphID, fontInstance, entryAnchor);
- glyphIterator->setCursiveEntryPoint(entryAnchor);
+ if( LE_SUCCESS(success) ) {
+ entryAnchorTable->getAnchor(entryAnchorTable, glyphID, fontInstance, entryAnchor, success);
+ glyphIterator->setCursiveEntryPoint(entryAnchor);
+ }
} else {
//glyphIterator->clearCursiveEntryPoint();
}
if (exitOffset != 0) {
- const AnchorTable *exitAnchorTable = (const AnchorTable *) ((char *) this + exitOffset);
+ LEReferenceTo<AnchorTable> exitAnchorTable(base, success, exitOffset);
- exitAnchorTable->getAnchor(glyphID, fontInstance, exitAnchor);
- glyphIterator->setCursiveExitPoint(exitAnchor);
+ if( LE_SUCCESS(success) ) {
+ exitAnchorTable->getAnchor(exitAnchorTable, glyphID, fontInstance, exitAnchor, success);
+ glyphIterator->setCursiveExitPoint(exitAnchor);
+ }
} else {
//glyphIterator->clearCursiveExitPoint();
}