Bug 771401 - Change PRTime in IDL to signed long long. r=bholley sr=bsmedberg

This commit is contained in:
Makoto Kato 2012-07-19 18:53:30 +09:00
parent bf92974758
commit 2a4902ee1b
6 changed files with 37 additions and 5 deletions

View File

@ -17,7 +17,10 @@ TestObjectReadWrite.prototype = {
shortProperty: 32767, shortProperty: 32767,
longProperty: 2147483647, longProperty: 2147483647,
floatProperty: 5.5, floatProperty: 5.5,
charProperty: "X" charProperty: "X",
// timeProperty is PRTime and signed type.
// So it has to allow negative value.
timeProperty: -1
}; };
@ -35,7 +38,10 @@ TestObjectReadOnly.prototype = {
shortReadOnly: 32767, shortReadOnly: 32767,
longReadOnly: 2147483647, longReadOnly: 2147483647,
floatReadOnly: 5.5, floatReadOnly: 5.5,
charReadOnly: "X" charReadOnly: "X",
// timeProperty is PRTime and signed type.
// So it has to allow negative value.
timeReadOnly: -1
}; };

View File

@ -14,6 +14,9 @@ xpcTestObjectReadOnly :: xpcTestObjectReadOnly() {
longProperty = 2147483647; longProperty = 2147483647;
floatProperty = 5.5f; floatProperty = 5.5f;
charProperty = 'X'; charProperty = 'X';
// timeProperty is PRTime and signed type.
// So it has to allow negative value.
timeProperty = -1;
} }
NS_IMETHODIMP xpcTestObjectReadOnly :: GetStrReadOnly(char * *aStrReadOnly){ NS_IMETHODIMP xpcTestObjectReadOnly :: GetStrReadOnly(char * *aStrReadOnly){
@ -46,6 +49,10 @@ NS_IMETHODIMP xpcTestObjectReadOnly :: GetCharReadOnly(char *aCharReadOnly){
*aCharReadOnly = charProperty; *aCharReadOnly = charProperty;
return NS_OK; return NS_OK;
} }
NS_IMETHODIMP xpcTestObjectReadOnly :: GetTimeReadOnly(PRTime *aTimeReadOnly){
*aTimeReadOnly = timeProperty;
return NS_OK;
}
NS_IMPL_ISUPPORTS1(xpcTestObjectReadWrite, nsIXPCTestObjectReadWrite) NS_IMPL_ISUPPORTS1(xpcTestObjectReadWrite, nsIXPCTestObjectReadWrite)
@ -57,6 +64,9 @@ xpcTestObjectReadWrite :: xpcTestObjectReadWrite() {
longProperty = 2147483647; longProperty = 2147483647;
floatProperty = 5.5f; floatProperty = 5.5f;
charProperty = 'X'; charProperty = 'X';
// timeProperty is PRTime and signed type.
// So it has to allow negative value.
timeProperty = -1;
} }
xpcTestObjectReadWrite :: ~xpcTestObjectReadWrite() xpcTestObjectReadWrite :: ~xpcTestObjectReadWrite()
@ -119,3 +129,11 @@ NS_IMETHODIMP xpcTestObjectReadWrite :: SetCharProperty(char aCharProperty) {
charProperty = aCharProperty; charProperty = aCharProperty;
return NS_OK; return NS_OK;
} }
NS_IMETHODIMP xpcTestObjectReadWrite :: GetTimeProperty(PRTime *aTimeProperty) {
*aTimeProperty = timeProperty;
return NS_OK;
}
NS_IMETHODIMP xpcTestObjectReadWrite :: SetTimeProperty(PRTime aTimeProperty) {
timeProperty = aTimeProperty;
return NS_OK;
}

View File

@ -29,6 +29,7 @@ class xpcTestObjectReadOnly MOZ_FINAL : public nsIXPCTestObjectReadOnly {
PRInt32 longProperty; PRInt32 longProperty;
float floatProperty; float floatProperty;
char charProperty; char charProperty;
PRTime timeProperty;
}; };
class xpcTestObjectReadWrite MOZ_FINAL : public nsIXPCTestObjectReadWrite { class xpcTestObjectReadWrite MOZ_FINAL : public nsIXPCTestObjectReadWrite {
@ -46,6 +47,7 @@ class xpcTestObjectReadWrite MOZ_FINAL : public nsIXPCTestObjectReadWrite {
float floatProperty; float floatProperty;
char charProperty; char charProperty;
char *stringProperty; char *stringProperty;
PRTime timeProperty;
}; };
class nsXPCTestParams MOZ_FINAL : public nsIXPCTestParams class nsXPCTestParams MOZ_FINAL : public nsIXPCTestParams

View File

@ -10,7 +10,7 @@
* *
*/ */
[scriptable, uuid(29e950a0-0134-44bc-b947-5e0ee95c8f7e)] [scriptable, uuid(42fbd9f6-b12d-47ef-b7a1-02d73c11fe53)]
interface nsIXPCTestObjectReadOnly : nsISupports { interface nsIXPCTestObjectReadOnly : nsISupports {
readonly attribute string strReadOnly; readonly attribute string strReadOnly;
readonly attribute boolean boolReadOnly; readonly attribute boolean boolReadOnly;
@ -18,9 +18,10 @@ interface nsIXPCTestObjectReadOnly : nsISupports {
readonly attribute long longReadOnly; readonly attribute long longReadOnly;
readonly attribute float floatReadOnly; readonly attribute float floatReadOnly;
readonly attribute char charReadOnly; readonly attribute char charReadOnly;
readonly attribute PRTime timeReadOnly;
}; };
[scriptable, uuid(492609a7-2582-436b-b0ef-92e29bb9e143)] [scriptable, uuid(f07529b0-a479-4954-aba5-ab3142c6b1cb)]
interface nsIXPCTestObjectReadWrite : nsISupports { interface nsIXPCTestObjectReadWrite : nsISupports {
attribute string stringProperty; attribute string stringProperty;
attribute boolean booleanProperty; attribute boolean booleanProperty;
@ -28,4 +29,5 @@ interface nsIXPCTestObjectReadWrite : nsISupports {
attribute long longProperty; attribute long longProperty;
attribute float floatProperty; attribute float floatProperty;
attribute char charProperty; attribute char charProperty;
attribute PRTime timeProperty;
}; };

View File

@ -30,6 +30,7 @@ function test_component_readwrite(contractid) {
do_check_eq(2147483647, o.longProperty); do_check_eq(2147483647, o.longProperty);
do_check_true(5.25 < o.floatProperty && 5.75 > o.floatProperty); do_check_true(5.25 < o.floatProperty && 5.75 > o.floatProperty);
do_check_eq("X", o.charProperty); do_check_eq("X", o.charProperty);
do_check_eq(-1, o.timeProperty);
// Write new values. // Write new values.
o.stringProperty = "another string"; o.stringProperty = "another string";
@ -38,6 +39,7 @@ function test_component_readwrite(contractid) {
o.longProperty = 1234567890; o.longProperty = 1234567890;
o.floatProperty = 10.2; o.floatProperty = 10.2;
o.charProperty = "Z"; o.charProperty = "Z";
o.timeProperty = 1;
// Test the new values. // Test the new values.
do_check_eq("another string", o.stringProperty); do_check_eq("another string", o.stringProperty);
@ -46,6 +48,7 @@ function test_component_readwrite(contractid) {
do_check_eq(1234567890, o.longProperty); do_check_eq(1234567890, o.longProperty);
do_check_true(10.15 < o.floatProperty && 10.25 > o.floatProperty); do_check_true(10.15 < o.floatProperty && 10.25 > o.floatProperty);
do_check_eq("Z", o.charProperty); do_check_eq("Z", o.charProperty);
do_check_eq(1, o.timeProperty);
// Assign values that differ from the expected type to verify conversion. // Assign values that differ from the expected type to verify conversion.
@ -74,4 +77,5 @@ function test_component_readonly(contractid) {
do_check_eq(2147483647, o.longReadOnly); do_check_eq(2147483647, o.longReadOnly);
do_check_true(5.25 < o.floatReadOnly && 5.75 > o.floatReadOnly); do_check_true(5.25 < o.floatReadOnly && 5.75 > o.floatReadOnly);
do_check_eq("X", o.charReadOnly); do_check_eq("X", o.charReadOnly);
do_check_eq(-1, o.timeReadOnly);
} }

View File

@ -30,7 +30,7 @@ typedef unsigned short PRUint16 ;
typedef unsigned short PRUnichar; typedef unsigned short PRUnichar;
typedef unsigned long PRUint32 ; typedef unsigned long PRUint32 ;
typedef unsigned long long PRUint64 ; typedef unsigned long long PRUint64 ;
typedef unsigned long long PRTime ; typedef long long PRTime ;
typedef short PRInt16 ; typedef short PRInt16 ;
typedef long PRInt32 ; typedef long PRInt32 ;
typedef long long PRInt64 ; typedef long long PRInt64 ;