RFR (L) 8037210: Get rid of char-based descriptions 'J' of basic types
Remi Forax
forax at univ-mlv.fr
Fri Mar 21 19:18:13 UTC 2014
On 03/21/2014 07:54 PM, John Rose wrote:
> On Mar 21, 2014, at 8:49 AM, Vladimir Ivanov
> <vladimir.x.ivanov at oracle.com <mailto:vladimir.x.ivanov at oracle.com>>
> wrote:
>
>> Thanks for the feedback.
>>
>> What do you think about the following:
>> http://cr.openjdk.java.net/~vlivanov/8037210/webrev.01/
>> <http://cr.openjdk.java.net/%7Evlivanov/8037210/webrev.01/>
>
> That looks nice. Strong typing; who woulda' thunk it. :-)
>
> The uses of ".ordinal()" are the extra cost relative to using just
> small integers. They seem totally reasonable in the code.
>
> I suggest either wrapping "ordinal" as something like "id" or else
> changing temp names like "id" to "ord", to reinforce the use of a
> common name.
>
> Don't make the enum class public. And especially don't make the
> mutable arrays public:
>
> + public static final BasicType[] ALL_TYPES = { L_TYPE, I_TYPE,
> J_TYPE, F_TYPE, D_TYPE, V_TYPE };
> + public static final BasicType[] ARG_TYPES = { L_TYPE, I_TYPE,
> J_TYPE, F_TYPE, D_TYPE };
>
> — John
>
> P.S. That would only be safe if we had (what we don't yet) a notion of
> frozen arrays like:
>
> + public static final BasicType final[] ALL_TYPES = { L_TYPE, I_TYPE,
> J_TYPE, F_TYPE, D_TYPE, V_TYPE };
> + public static final BasicType final[] ARG_TYPES = { L_TYPE, I_TYPE,
> J_TYPE, F_TYPE, D_TYPE };
or
public static final BasicType[] ARG_TYPES = { L_TYPE, I_TYPE, J_TYPE,
F_TYPE, D_TYPE }.frozen();
because frozen() is a dynamic property.
Rémi
More information about the mlvm-dev
mailing list