Skip to content

Commit 55a282d

Browse files
committed
add profiles for new converter cases within mapped collection types
1 parent 9aa80cf commit 55a282d

File tree

1 file changed

+12
-0
lines changed
  • espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/nodes/interop

1 file changed

+12
-0
lines changed

espresso/src/com.oracle.truffle.espresso/src/com/oracle/truffle/espresso/nodes/interop/ToReference.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -590,6 +590,7 @@ public StaticObject doMappedList(Object value,
590590
@Cached ProxyInstantiateNode proxyInstantiateNode,
591591
@Cached InstanceOf.Dynamic instanceOf,
592592
@CachedLibrary(limit = "LIMIT") @Exclusive InteropLibrary interop,
593+
@Cached InlinedBranchProfile converterProfile,
593594
@Cached InlinedBranchProfile errorProfile) throws UnsupportedTypeException {
594595
try {
595596
Object metaObject = interop.getMetaObject(value);
@@ -598,6 +599,7 @@ public StaticObject doMappedList(Object value,
598599
// first check if there's a user-defined custom type converter defined
599600
PolyglotTypeMappings.TypeConverter converter = lookupTypeConverterNode.execute(metaName);
600601
if (converter != null) {
602+
converterProfile.enter(node);
601603
StaticObject foreignWrapper = StaticObject.createForeign(context.getLanguage(), context.getMeta().java_lang_Object, value, interop);
602604
StaticObject result = (StaticObject) converter.convert(foreignWrapper);
603605
if (instanceOf.execute(result.getKlass(), context.getMeta().java_util_List)) {
@@ -666,6 +668,7 @@ public StaticObject doMappedCollection(Object value,
666668
@Cached ProxyInstantiateNode proxyInstantiateNode,
667669
@Cached InstanceOf.Dynamic instanceOf,
668670
@CachedLibrary(limit = "LIMIT") @Exclusive InteropLibrary interop,
671+
@Cached InlinedBranchProfile converterProfile,
669672
@Cached InlinedBranchProfile errorProfile) throws UnsupportedTypeException {
670673
try {
671674
Object metaObject = interop.getMetaObject(value);
@@ -674,6 +677,7 @@ public StaticObject doMappedCollection(Object value,
674677
// first check if there's a user-defined custom type converter defined
675678
PolyglotTypeMappings.TypeConverter converter = lookupTypeConverterNode.execute(metaName);
676679
if (converter != null) {
680+
converterProfile.enter(node);
677681
StaticObject foreignWrapper = StaticObject.createForeign(meta.getLanguage(), meta.java_lang_Object, value, interop);
678682
StaticObject result = (StaticObject) converter.convert(foreignWrapper);
679683
if (instanceOf.execute(result.getKlass(), meta.java_util_Collection)) {
@@ -742,6 +746,7 @@ public StaticObject doMappedIterable(Object value,
742746
@Cached ProxyInstantiateNode proxyInstantiateNode,
743747
@Cached InstanceOf.Dynamic instanceOf,
744748
@CachedLibrary(limit = "LIMIT") @Exclusive InteropLibrary interop,
749+
@Cached InlinedBranchProfile converterProfile,
745750
@Cached InlinedBranchProfile errorProfile) throws UnsupportedTypeException {
746751
try {
747752
Object metaObject = interop.getMetaObject(value);
@@ -750,6 +755,7 @@ public StaticObject doMappedIterable(Object value,
750755
// first check if there's a user-defined custom type converter defined
751756
PolyglotTypeMappings.TypeConverter converter = lookupTypeConverterNode.execute(metaName);
752757
if (converter != null) {
758+
converterProfile.enter(node);
753759
StaticObject foreignWrapper = StaticObject.createForeign(meta.getLanguage(), meta.java_lang_Object, value, interop);
754760
StaticObject result = (StaticObject) converter.convert(foreignWrapper);
755761
if (instanceOf.execute(result.getKlass(), meta.java_lang_Iterable)) {
@@ -818,6 +824,7 @@ public StaticObject doMappedIterator(Object value,
818824
@Cached ProxyInstantiateNode proxyInstantiateNode,
819825
@Cached InstanceOf.Dynamic instanceOf,
820826
@CachedLibrary(limit = "LIMIT") @Exclusive InteropLibrary interop,
827+
@Cached InlinedBranchProfile converterProfile,
821828
@Cached InlinedBranchProfile errorProfile) throws UnsupportedTypeException {
822829
try {
823830
Object metaObject = interop.getMetaObject(value);
@@ -826,6 +833,7 @@ public StaticObject doMappedIterator(Object value,
826833
// first check if there's a user-defined custom type converter defined
827834
PolyglotTypeMappings.TypeConverter converter = lookupTypeConverterNode.execute(metaName);
828835
if (converter != null) {
836+
converterProfile.enter(node);
829837
StaticObject foreignWrapper = StaticObject.createForeign(meta.getLanguage(), meta.java_lang_Object, value, interop);
830838
StaticObject result = (StaticObject) converter.convert(foreignWrapper);
831839
if (instanceOf.execute(result.getKlass(), meta.java_util_Iterator)) {
@@ -894,13 +902,15 @@ public StaticObject doMappedMap(Object value,
894902
@Cached ProxyInstantiateNode proxyInstantiateNode,
895903
@Cached InstanceOf.Dynamic instanceOf,
896904
@CachedLibrary(limit = "LIMIT") @Exclusive InteropLibrary interop,
905+
@Cached InlinedBranchProfile converterProfile,
897906
@Cached InlinedBranchProfile errorProfile) throws UnsupportedTypeException {
898907
try {
899908
Object metaObject = interop.getMetaObject(value);
900909
String metaName = getMetaName(metaObject, interop);
901910
// first check if there's a user-defined custom type converter defined
902911
PolyglotTypeMappings.TypeConverter converter = lookupTypeConverterNode.execute(metaName);
903912
if (converter != null) {
913+
converterProfile.enter(node);
904914
StaticObject foreignWrapper = StaticObject.createForeign(meta.getLanguage(), meta.java_lang_Object, value, interop);
905915
StaticObject result = (StaticObject) converter.convert(foreignWrapper);
906916
if (instanceOf.execute(result.getKlass(), meta.java_util_Map)) {
@@ -968,6 +978,7 @@ public StaticObject doMappedSet(Object value,
968978
@Cached ProxyInstantiateNode proxyInstantiateNode,
969979
@Cached InstanceOf.Dynamic instanceOf,
970980
@CachedLibrary(limit = "LIMIT") @Exclusive InteropLibrary interop,
981+
@Cached InlinedBranchProfile converterProfile,
971982
@Cached InlinedBranchProfile errorProfile) throws UnsupportedTypeException {
972983
try {
973984
Object metaObject = interop.getMetaObject(value);
@@ -976,6 +987,7 @@ public StaticObject doMappedSet(Object value,
976987
// first check if there's a user-defined custom type converter defined
977988
PolyglotTypeMappings.TypeConverter converter = lookupTypeConverterNode.execute(metaName);
978989
if (converter != null) {
990+
converterProfile.enter(node);
979991
StaticObject foreignWrapper = StaticObject.createForeign(meta.getLanguage(), meta.java_lang_Object, value, interop);
980992
StaticObject result = (StaticObject) converter.convert(foreignWrapper);
981993
if (instanceOf.execute(result.getKlass(), meta.java_util_Set)) {

0 commit comments

Comments
 (0)