[lworld] Handling of missing ValueTypes attributes

Ioi Lam ioi.lam at oracle.com
Mon Jul 9 22:44:24 UTC 2018

In lworld, how are we suppose to handle cases where the ValueTypes 
attribute should have been there for a classfile, but is missing?


   class MyHack {
       Point getPoint() {
           if (onceInAWhile) {
               return Point.makePoint(1, 2);
           } else {
               return null;

Normally, Point will be included in MyHack's ValueTypes attribute, and 
the Point class will be aggressively loaded. So we'd know for sure that 
getPoint returns a ValueType.

However, someone can write this class by hand and omit the ValueTypes 
attribute. In that case, I think the program's output should be the same 
as if the ValueTypes attribute had been present, although performance 
may differ (slower, more heap allocations, etc).

Is this understanding correct?

- Ioi

More information about the valhalla-dev mailing list