Skip to content

Commit

Permalink
Bug 239460 - Specify types for XPIDL consts in C++, r=xpcom-reviewers…
Browse files Browse the repository at this point in the history
…,mccr8

Before this change, all XPIDL constants were declared using an anonymous
`enum` rather than using a static constant. This change makes the
generated code more consistent with what is done in languages like Rust.

Some small changes were needed due to signed/unsigned comparison
warnings which were previously silent.

Differential Revision: https://phabricator.services.mozilla.com/D143090
  • Loading branch information
mystor committed Apr 6, 2022
1 parent ebb111d commit b3473b9
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 15 deletions.
6 changes: 3 additions & 3 deletions netwerk/cookie/nsICookie.idl
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ typedef long nsCookiePolicy;

[builtinclass, scriptable, uuid(adf0db5e-211e-45a3-be14-4486ac430a58)]
interface nsICookie : nsISupports {
const uint32_t SAMESITE_NONE = 0;
const uint32_t SAMESITE_LAX = 1;
const uint32_t SAMESITE_STRICT = 2;
const int32_t SAMESITE_NONE = 0;
const int32_t SAMESITE_LAX = 1;
const int32_t SAMESITE_STRICT = 2;

/**
* the name of the cookie
Expand Down
14 changes: 4 additions & 10 deletions xpcom/idl-parser/xpidl/header.py
Original file line number Diff line number Diff line change
Expand Up @@ -495,22 +495,16 @@ def record_name(name):
record_name(methodNativeName(m))

def write_const_decls(g):
fd.write(" enum {\n")
enums = []
for c in g:
printComments(fd, c.doccomments, " ")
basetype = c.basetype
value = c.getValue()
enums.append(
" %(name)s = %(value)s%(signed)s"
fd.write(
" static constexpr %(type)s %(name)s = %(value)s;\n"
% {
"type": c.realtype.nativeType("in"),
"name": c.name,
"value": value,
"signed": (not basetype.signed) and "U" or "",
"value": c.getValue(),
}
)
fd.write(",\n".join(enums))
fd.write("\n };\n\n")

def write_cenum_decl(b):
fd.write(" enum %s : uint%d_t {\n" % (b.basename, b.width))
Expand Down
2 changes: 1 addition & 1 deletion xpcom/system/nsIXULRuntime.idl
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ interface nsIXULRuntime : nsISupports
* The current e10s-multi experiment number. Set dom.ipc.multiOptOut to (at
* least) this to disable it until the next experiment.
*/
const uint32_t E10S_MULTI_EXPERIMENT = 1;
const int32_t E10S_MULTI_EXPERIMENT = 1;

/**
* If true, the accessibility service is running.
Expand Down
4 changes: 3 additions & 1 deletion xpfe/appshell/AppWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1465,8 +1465,10 @@ bool AppWindow::UpdateWindowStateFromMiscXULAttributes() {
if (!stateString.IsEmpty()) {
nsresult errorCode;
int32_t zLevel = stateString.ToInteger(&errorCode);
if (NS_SUCCEEDED(errorCode) && zLevel >= lowestZ && zLevel <= highestZ)
if (NS_SUCCEEDED(errorCode) && zLevel >= int32_t(lowestZ) &&
zLevel <= int32_t(highestZ)) {
SetZLevel(zLevel);
}
}

return gotState;
Expand Down

0 comments on commit b3473b9

Please sign in to comment.