Closed
Bug 455424
Opened 16 years ago
Closed 16 years ago
nssilckt.h defines the enumeration constant 'Lock', which conflicts with C++ code defining a 'Lock' class.
Categories
(NSS :: Libraries, defect)
NSS
Libraries
Tracking
(Not tracked)
RESOLVED
FIXED
3.12.2
People
(Reporter: wtc, Assigned: wtc)
Details
Attachments
(1 file, 2 obsolete files)
4.94 KB,
patch
|
Details | Diff | Splinter Review |
nssilckt.h defines the enumeration constant 'Lock' unconditionally:
typedef enum {
FlushTT = 0,
NewLock = 1,
Lock = 2, <=== PROBLEM!
Unlock = 3,
DestroyLock = 4,
NewCondVar = 5,
WaitCondVar = 6,
NotifyCondVar = 7,
NotifyAllCondVar = 8,
DestroyCondVar = 9,
NewMonitor = 10,
EnterMonitor = 11,
ExitMonitor = 12,
Notify = 13,
NotifyAll = 14,
Wait = 15,
DestroyMonitor = 16
} nssILockOp;
This conflicts with C++ code that defines a 'Lock' class.
The fix is to move the definition of this enumeration type
into conditionally compiled code. My proposed patch also
removes PR_BEGIN_EXTERN_C and PR_END_EXTERN_C, which are
not used in our xxxt.h headers by convention.
Attachment #338767 -
Flags: review?(alexei.volkov.bugs)
Comment 1•16 years ago
|
||
Is this a public header file?
Assignee | ||
Comment 2•16 years ago
|
||
Assignee | ||
Comment 3•16 years ago
|
||
I added a test case. Since the C++ rules in coreconf have rotted,
I created the test case in C even though the originally reported problem
is in C++.
Attachment #338767 -
Attachment is obsolete: true
Attachment #338889 -
Flags: review?(alexei.volkov.bugs)
Attachment #338767 -
Flags: review?(alexei.volkov.bugs)
Comment 4•16 years ago
|
||
Comment on attachment 338889 [details] [diff] [review]
Proposed patch v2
r=alexei
Attachment #338889 -
Flags: review?(alexei.volkov.bugs) → review+
Assignee | ||
Comment 5•16 years ago
|
||
I changed the test program conflict.c to include "nssilckt.h" directly.
I checked in this patch on the NSS trunk (NSS 3.12.2).
RCS file: /cvsroot/mozilla/security/nss/cmd/tests/conflict.c,v
done
Checking in cmd/tests/conflict.c;
/cvsroot/mozilla/security/nss/cmd/tests/conflict.c,v <-- conflict.c
initial revision: 1.1
done
Checking in cmd/tests/manifest.mn;
/cvsroot/mozilla/security/nss/cmd/tests/manifest.mn,v <-- manifest.mn
new revision: 1.7; previous revision: 1.6
done
Checking in lib/util/nssilckt.h;
/cvsroot/mozilla/security/nss/lib/util/nssilckt.h,v <-- nssilckt.h
new revision: 1.7; previous revision: 1.6
done
Attachment #338889 -
Attachment is obsolete: true
Assignee | ||
Updated•16 years ago
|
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Target Milestone: --- → 3.12.2
You need to log in
before you can comment on or make changes to this bug.
Description
•