Skip to content

Commit 757dce2

Browse files
committed
Treat <bitfield>s the same as <enumeration>s
They look almost exactly the same, the only difference seems to be that while <enumeration>s allow for arbitrary integers as values for their members, <bitfield>s only list single-bit flags. In BridJ, enumeration members can be ORed together like flags, so the way we map <enumerations> should work for <bitfield>s as well.
1 parent 8894cd8 commit 757dce2

File tree

1 file changed

+1
-19
lines changed

1 file changed

+1
-19
lines changed

src/gir2java/GirParser.java

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public class GirParser {
6969
elementParsers.put("field", GirParser.class.getDeclaredMethod("parseRecordField", Element.class, ParsingContext.class));
7070
elementParsers.put("interface", GirParser.class.getDeclaredMethod("parseInterface", Element.class, ParsingContext.class));
7171
elementParsers.put("union", GirParser.class.getDeclaredMethod("parseUnion", Element.class, ParsingContext.class));
72-
elementParsers.put("bitfield", GirParser.class.getDeclaredMethod("parseBitfield", Element.class, ParsingContext.class));
72+
elementParsers.put("bitfield", GirParser.class.getDeclaredMethod("parseEnumeration", Element.class, ParsingContext.class));
7373
elementParsers.put("alias", GirParser.class.getDeclaredMethod("parseAlias", Element.class, ParsingContext.class));
7474
elementParsers.put("callback", GirParser.class.getDeclaredMethod("parseCallback", Element.class, ParsingContext.class));
7575
elementParsers.put("function", GirParser.class.getDeclaredMethod("parseMethodOrFunction", Element.class, ParsingContext.class));
@@ -911,24 +911,6 @@ private void parseUnion(Element root, ParsingContext context) {
911911
context.registerType(convType);
912912
}
913913

914-
@SuppressWarnings("unused")
915-
private void parseBitfield(Element root, ParsingContext context) {
916-
// only log the fact that we have found this type for now
917-
//Note: Should this be treated as a simple enum? BridJ IntValuedEnums support combining flags.
918-
String name = root.getAttributeValue("name");
919-
Set<String> foundTypes = (Set<String>)context.getExtra(Constants.CONTEXT_EXTRA_DEFINED_TYPES);
920-
foundTypes.add("" + context.getExtra(Constants.CONTEXT_EXTRA_NAMESPACE) + '.' + name);
921-
ConvertedType convType = new ConvertedType(
922-
context.getCm(),
923-
(String)context.getExtra(Constants.CONTEXT_EXTRA_NAMESPACE),
924-
name,
925-
root.getAttributeValue("type",Constants.GIR_XMLNS_C),
926-
false
927-
);
928-
convType.setJType(context.getCm().ref(Object.class));
929-
context.registerType(convType);
930-
}
931-
932914
@SuppressWarnings("unused")
933915
private void parseAlias(Element root, ParsingContext context) {
934916
// only log the fact that we have found this type for now

0 commit comments

Comments
 (0)