Skip to content

Struct Enum field with unsigned values #126

@goto1134

Description

@goto1134

There is a enum

public enum LockMode
        implements IntegerEnum
{
  Locked(0x00),
  Unlocked(0x04),
  Unknown(0xFF);

  ReaderMode(int aValue)
  {
    value = aValue;
  }

  @Override
  public int intValue()
  {
    return value;
  }

  private final int value;
}

But when it is used as value for Enum8 field of Struct there is an exception when the value is Unknown that says:

java.lang.IllegalArgumentException: No known Enum mapping for value -1 of type lock.LockMode

The problem is that Unknown field has value of 0xFF, which is -1 in byte equivalent.

I think, it would be better if jnr.ffi.util.EnumMapper will compare unsigned values.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions