From d0965e0a9dcb5edf9841afd8fa717445d7877ee7 Mon Sep 17 00:00:00 2001 From: "jband%netscape.com" Date: Sat, 3 Jul 1999 00:59:56 +0000 Subject: [PATCH] updating string example/test to include an example of [shared] --- js/src/xpconnect/idl/xpctest.idl | 1 + .../tests/components/xpctest_string.cpp | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/js/src/xpconnect/idl/xpctest.idl b/js/src/xpconnect/idl/xpctest.idl index d45c6bb8d73c..66a442d35e0d 100644 --- a/js/src/xpconnect/idl/xpctest.idl +++ b/js/src/xpconnect/idl/xpctest.idl @@ -108,4 +108,5 @@ interface nsIXPCTestNoisy : nsISupports { interface nsIXPCTestString : nsISupports { string GetStringA(); void GetStringB(out string s); + void GetStringC([shared,retval] out string s); }; diff --git a/js/src/xpconnect/tests/components/xpctest_string.cpp b/js/src/xpconnect/tests/components/xpctest_string.cpp index fb4170a56762..29b69932dd7a 100644 --- a/js/src/xpconnect/tests/components/xpctest_string.cpp +++ b/js/src/xpconnect/tests/components/xpctest_string.cpp @@ -31,6 +31,9 @@ public: /* void GetStringB (out string s); */ NS_IMETHOD GetStringB(char **s); + /* void GetStringC ([shared, retval] out string s); */ + NS_IMETHOD GetStringC(const char **s); + xpcstringtest(); virtual ~xpcstringtest(); }; @@ -57,10 +60,10 @@ xpcstringtest::GetStringA(char **_retval) if(!_retval) return NS_ERROR_NULL_POINTER; - *_retval = (char*) nsAllocator::Clone(myResult, + *_retval = (char*) nsAllocator::Clone(myResult, sizeof(char)*(strlen(myResult)+1)); return *_retval ? NS_OK : NS_ERROR_OUT_OF_MEMORY; -} +} /* void GetStringB (out string s); */ NS_IMETHODIMP @@ -71,11 +74,23 @@ xpcstringtest::GetStringB(char **s) if(!s) return NS_ERROR_NULL_POINTER; - *s = (char*) nsAllocator::Clone(myResult, + *s = (char*) nsAllocator::Clone(myResult, sizeof(char)*(strlen(myResult)+1)); return *s ? NS_OK : NS_ERROR_OUT_OF_MEMORY; -} +} + + +/* void GetStringC ([shared, retval] out string s); */ +NS_IMETHODIMP +xpcstringtest::GetStringC(const char **s) +{ + static const char myResult[] = "result of xpcstringtest::GetStringC"; + if(!s) + return NS_ERROR_NULL_POINTER; + *s = myResult; + return NS_OK; +} /***************************************************************************/