зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1507540 part 6. Make nsIVariant's "type" a notxpcom attribute. r=froydnj
This commit is contained in:
Родитель
0216588e17
Коммит
64ae41821b
|
@ -1146,8 +1146,7 @@ DataTransfer::ConvertFromVariant(nsIVariant* aVariant,
|
|||
*aSupports = nullptr;
|
||||
*aLength = 0;
|
||||
|
||||
uint16_t type;
|
||||
aVariant->GetDataType(&type);
|
||||
uint16_t type = aVariant->GetDataType();
|
||||
if (type == nsIDataType::VTYPE_INTERFACE ||
|
||||
type == nsIDataType::VTYPE_INTERFACE_IS) {
|
||||
nsCOMPtr<nsISupports> data;
|
||||
|
|
|
@ -83,16 +83,14 @@ class MediaDevices::EnumDevResolver
|
|||
nsTArray<nsCOMPtr<nsIMediaDevice>> devices;
|
||||
// Contain the fumes
|
||||
{
|
||||
uint16_t vtype;
|
||||
nsresult rv = aDevices->GetDataType(&vtype);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
uint16_t vtype = aDevices->GetDataType();
|
||||
if (vtype != nsIDataType::VTYPE_EMPTY_ARRAY) {
|
||||
nsIID elementIID;
|
||||
uint16_t elementType;
|
||||
void* rawArray;
|
||||
uint32_t arrayLen;
|
||||
rv = aDevices->GetAsArray(&elementType, &elementIID, &arrayLen,
|
||||
&rawArray);
|
||||
nsresult rv = aDevices->GetAsArray(&elementType, &elementIID, &arrayLen,
|
||||
&rawArray);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
if (elementType != nsIDataType::VTYPE_INTERFACE) {
|
||||
free(rawArray);
|
||||
|
|
|
@ -452,11 +452,7 @@ RequestResolver::GetStorageEstimate(nsIVariant* aResult)
|
|||
MOZ_ASSERT(aResult);
|
||||
MOZ_ASSERT(mType == Type::Estimate);
|
||||
|
||||
#ifdef DEBUG
|
||||
uint16_t dataType;
|
||||
MOZ_ALWAYS_SUCCEEDS(aResult->GetDataType(&dataType));
|
||||
MOZ_ASSERT(dataType == nsIDataType::VTYPE_INTERFACE_IS);
|
||||
#endif
|
||||
MOZ_ASSERT(aResult->GetDataType() == nsIDataType::VTYPE_INTERFACE_IS);
|
||||
|
||||
nsID* iid;
|
||||
nsCOMPtr<nsISupports> supports;
|
||||
|
@ -487,8 +483,7 @@ RequestResolver::GetPersisted(nsIVariant* aResult)
|
|||
MOZ_ASSERT(mType == Type::Persist || mType == Type::Persisted);
|
||||
|
||||
#ifdef DEBUG
|
||||
uint16_t dataType;
|
||||
MOZ_ALWAYS_SUCCEEDS(aResult->GetDataType(&dataType));
|
||||
uint16_t dataType = aResult->GetDataType();
|
||||
#endif
|
||||
|
||||
if (mType == Type::Persist) {
|
||||
|
|
|
@ -757,8 +757,7 @@ txMozillaXSLTProcessor::SetParameter(const nsAString& aNamespaceURI,
|
|||
|
||||
nsCOMPtr<nsIVariant> value = aValue;
|
||||
|
||||
uint16_t dataType;
|
||||
value->GetDataType(&dataType);
|
||||
uint16_t dataType = value->GetDataType();
|
||||
switch (dataType) {
|
||||
// Number
|
||||
case nsIDataType::VTYPE_INT8:
|
||||
|
@ -1313,8 +1312,7 @@ txVariable::Convert(nsIVariant *aValue, txAExprResult** aResult)
|
|||
{
|
||||
*aResult = nullptr;
|
||||
|
||||
uint16_t dataType;
|
||||
aValue->GetDataType(&dataType);
|
||||
uint16_t dataType = aValue->GetDataType();
|
||||
switch (dataType) {
|
||||
// Number
|
||||
case nsIDataType::VTYPE_INT8:
|
||||
|
|
|
@ -388,10 +388,7 @@ XPCVariant::VariantDataToJS(nsIVariant* variant,
|
|||
nsresult* pErr, MutableHandleValue pJSVal)
|
||||
{
|
||||
// Get the type early because we might need to spoof it below.
|
||||
uint16_t type;
|
||||
if (NS_FAILED(variant->GetDataType(&type))) {
|
||||
return false;
|
||||
}
|
||||
uint16_t type = variant->GetDataType();
|
||||
|
||||
AutoJSContext cx;
|
||||
RootedValue realVal(cx);
|
||||
|
@ -705,10 +702,9 @@ XPCVariant::VariantDataToJS(nsIVariant* variant,
|
|||
// some more interesting conversions.
|
||||
|
||||
|
||||
NS_IMETHODIMP XPCVariant::GetDataType(uint16_t* aDataType)
|
||||
uint16_t XPCVariant::GetDataType()
|
||||
{
|
||||
*aDataType = mData.GetType();
|
||||
return NS_OK;
|
||||
return mData.GetType();
|
||||
}
|
||||
|
||||
NS_IMETHODIMP XPCVariant::GetAsInt8(uint8_t* _retval)
|
||||
|
|
|
@ -347,11 +347,9 @@ struct variant_blob_traits<uint8_t[], true>
|
|||
class NullVariant : public Variant_base
|
||||
{
|
||||
public:
|
||||
NS_IMETHOD GetDataType(uint16_t *_type) override
|
||||
uint16_t GetDataType() override
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(_type);
|
||||
*_type = nsIDataType::VTYPE_EMPTY;
|
||||
return NS_OK;
|
||||
return nsIDataType::VTYPE_EMPTY;
|
||||
}
|
||||
|
||||
NS_IMETHOD GetAsAUTF8String(nsACString &_str) override
|
||||
|
@ -386,10 +384,9 @@ public:
|
|||
variant_storage_traits<DataType, Adopting>::storage_conversion(aData, &mData);
|
||||
}
|
||||
|
||||
NS_IMETHOD GetDataType(uint16_t *_type) override
|
||||
uint16_t GetDataType() override
|
||||
{
|
||||
*_type = variant_traits<DataType>::type();
|
||||
return NS_OK;
|
||||
return variant_traits<DataType>::type();
|
||||
}
|
||||
NS_IMETHOD GetAsInt32(int32_t *_integer) override
|
||||
{
|
||||
|
|
|
@ -29,12 +29,10 @@ inline NS_IMPL_QUERY_INTERFACE(
|
|||
//// nsIVariant
|
||||
|
||||
inline
|
||||
NS_IMETHODIMP
|
||||
Variant_base::GetDataType(uint16_t *_type)
|
||||
uint16_t
|
||||
Variant_base::GetDataType()
|
||||
{
|
||||
NS_ENSURE_ARG_POINTER(_type);
|
||||
*_type = nsIDataType::VTYPE_VOID;
|
||||
return NS_OK;
|
||||
return nsIDataType::VTYPE_VOID;
|
||||
}
|
||||
|
||||
inline
|
||||
|
|
|
@ -171,9 +171,7 @@ convertVariantToStorageVariant(nsIVariant* aVariant)
|
|||
if (!aVariant)
|
||||
return new NullVariant();
|
||||
|
||||
uint16_t dataType;
|
||||
nsresult rv = aVariant->GetDataType(&dataType);
|
||||
NS_ENSURE_SUCCESS(rv, nullptr);
|
||||
uint16_t dataType = aVariant->GetDataType();
|
||||
|
||||
switch (dataType) {
|
||||
case nsIDataType::VTYPE_BOOL:
|
||||
|
@ -186,14 +184,14 @@ convertVariantToStorageVariant(nsIVariant* aVariant)
|
|||
case nsIDataType::VTYPE_INT64:
|
||||
case nsIDataType::VTYPE_UINT64: {
|
||||
int64_t v;
|
||||
rv = aVariant->GetAsInt64(&v);
|
||||
nsresult rv = aVariant->GetAsInt64(&v);
|
||||
NS_ENSURE_SUCCESS(rv, nullptr);
|
||||
return new IntegerVariant(v);
|
||||
}
|
||||
case nsIDataType::VTYPE_FLOAT:
|
||||
case nsIDataType::VTYPE_DOUBLE: {
|
||||
double v;
|
||||
rv = aVariant->GetAsDouble(&v);
|
||||
nsresult rv = aVariant->GetAsDouble(&v);
|
||||
NS_ENSURE_SUCCESS(rv, nullptr);
|
||||
return new FloatVariant(v);
|
||||
}
|
||||
|
@ -203,7 +201,7 @@ convertVariantToStorageVariant(nsIVariant* aVariant)
|
|||
case nsIDataType::VTYPE_UTF8STRING:
|
||||
case nsIDataType::VTYPE_CSTRING: {
|
||||
nsCString v;
|
||||
rv = aVariant->GetAsAUTF8String(v);
|
||||
nsresult rv = aVariant->GetAsAUTF8String(v);
|
||||
NS_ENSURE_SUCCESS(rv, nullptr);
|
||||
return new UTF8TextVariant(v);
|
||||
}
|
||||
|
@ -212,7 +210,7 @@ convertVariantToStorageVariant(nsIVariant* aVariant)
|
|||
case nsIDataType::VTYPE_WSTRING_SIZE_IS:
|
||||
case nsIDataType::VTYPE_ASTRING: {
|
||||
nsString v;
|
||||
rv = aVariant->GetAsAString(v);
|
||||
nsresult rv = aVariant->GetAsAString(v);
|
||||
NS_ENSURE_SUCCESS(rv, nullptr);
|
||||
return new TextVariant(v);
|
||||
}
|
||||
|
@ -222,7 +220,7 @@ convertVariantToStorageVariant(nsIVariant* aVariant)
|
|||
uint32_t len;
|
||||
void *rawArray;
|
||||
// Note this copies the array data.
|
||||
rv = aVariant->GetAsArray(&type, &iid, &len, &rawArray);
|
||||
nsresult rv = aVariant->GetAsArray(&type, &iid, &len, &rawArray);
|
||||
NS_ENSURE_SUCCESS(rv, nullptr);
|
||||
if (type == nsIDataType::VTYPE_UINT8) {
|
||||
std::pair<uint8_t *, int> v(static_cast<uint8_t *>(rawArray), len);
|
||||
|
|
|
@ -118,8 +118,7 @@ Row::GetTypeOfIndex(uint32_t aIndex,
|
|||
{
|
||||
ENSURE_INDEX_VALUE(aIndex, mNumCols);
|
||||
|
||||
uint16_t type;
|
||||
(void)mData.ObjectAt(aIndex)->GetDataType(&type);
|
||||
uint16_t type = mData.ObjectAt(aIndex)->GetDataType();
|
||||
switch (type) {
|
||||
case nsIDataType::VTYPE_INT32:
|
||||
case nsIDataType::VTYPE_INT64:
|
||||
|
@ -213,8 +212,7 @@ Row::GetIsNull(uint32_t aIndex,
|
|||
ENSURE_INDEX_VALUE(aIndex, mNumCols);
|
||||
NS_ENSURE_ARG_POINTER(_isNull);
|
||||
|
||||
uint16_t type;
|
||||
(void)mData.ObjectAt(aIndex)->GetDataType(&type);
|
||||
uint16_t type = mData.ObjectAt(aIndex)->GetDataType();
|
||||
*_isNull = type == nsIDataType::VTYPE_EMPTY;
|
||||
return NS_OK;
|
||||
}
|
||||
|
|
|
@ -21,8 +21,7 @@ variantToSQLiteT(T aObj,
|
|||
if (!aValue)
|
||||
return sqlite3_T_null(aObj);
|
||||
|
||||
uint16_t valueType;
|
||||
aValue->GetDataType(&valueType);
|
||||
uint16_t valueType = aValue->GetDataType();
|
||||
switch (valueType) {
|
||||
case nsIDataType::VTYPE_INT8:
|
||||
case nsIDataType::VTYPE_INT16:
|
||||
|
|
|
@ -141,9 +141,7 @@ nsAnnotationService::SetItemAnnotation(int64_t aItemId,
|
|||
NS_ENSURE_ARG_MIN(aItemId, 1);
|
||||
NS_ENSURE_ARG(aValue);
|
||||
|
||||
uint16_t dataType;
|
||||
nsresult rv = aValue->GetDataType(&dataType);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
uint16_t dataType = aValue->GetDataType();
|
||||
BookmarkData bookmark;
|
||||
|
||||
switch (dataType) {
|
||||
|
@ -155,7 +153,7 @@ nsAnnotationService::SetItemAnnotation(int64_t aItemId,
|
|||
case nsIDataType::VTYPE_UINT32:
|
||||
case nsIDataType::VTYPE_BOOL: {
|
||||
int32_t valueInt;
|
||||
rv = aValue->GetAsInt32(&valueInt);
|
||||
nsresult rv = aValue->GetAsInt32(&valueInt);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
rv = SetAnnotationInt32Internal(aItemId, &bookmark, aName,
|
||||
|
@ -169,7 +167,7 @@ nsAnnotationService::SetItemAnnotation(int64_t aItemId,
|
|||
case nsIDataType::VTYPE_INT64:
|
||||
case nsIDataType::VTYPE_UINT64: {
|
||||
int64_t valueLong;
|
||||
rv = aValue->GetAsInt64(&valueLong);
|
||||
nsresult rv = aValue->GetAsInt64(&valueLong);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
rv = SetAnnotationInt64Internal(aItemId, &bookmark, aName,
|
||||
|
@ -183,7 +181,7 @@ nsAnnotationService::SetItemAnnotation(int64_t aItemId,
|
|||
case nsIDataType::VTYPE_FLOAT:
|
||||
case nsIDataType::VTYPE_DOUBLE: {
|
||||
double valueDouble;
|
||||
rv = aValue->GetAsDouble(&valueDouble);
|
||||
nsresult rv = aValue->GetAsDouble(&valueDouble);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
rv = SetAnnotationDoubleInternal(aItemId, &bookmark,
|
||||
aName, valueDouble, aFlags, aExpiration);
|
||||
|
@ -200,7 +198,7 @@ nsAnnotationService::SetItemAnnotation(int64_t aItemId,
|
|||
case nsIDataType::VTYPE_CSTRING:
|
||||
case nsIDataType::VTYPE_ASTRING: {
|
||||
nsAutoString stringValue;
|
||||
rv = aValue->GetAsAString(stringValue);
|
||||
nsresult rv = aValue->GetAsAString(stringValue);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
rv = SetAnnotationStringInternal(aItemId, &bookmark, aName,
|
||||
stringValue, aFlags, aExpiration);
|
||||
|
|
|
@ -850,8 +850,7 @@ NS_IMETHODIMP nsNavHistoryQuery::SetTags(nsIVariant *aTags)
|
|||
{
|
||||
NS_ENSURE_ARG(aTags);
|
||||
|
||||
uint16_t dataType;
|
||||
aTags->GetDataType(&dataType);
|
||||
uint16_t dataType = aTags->GetDataType();
|
||||
|
||||
// Caller passed in empty array. Easy -- clear our mTags array and return.
|
||||
if (dataType == nsIDataType::VTYPE_EMPTY_ARRAY) {
|
||||
|
|
|
@ -484,8 +484,7 @@ ScalarResult
|
|||
ScalarUnsigned::CheckInput(nsIVariant* aValue)
|
||||
{
|
||||
// If this is a floating point value/double, we will probably get truncated.
|
||||
uint16_t type;
|
||||
aValue->GetDataType(&type);
|
||||
uint16_t type = aValue->GetDataType();
|
||||
if (type == nsIDataType::VTYPE_FLOAT ||
|
||||
type == nsIDataType::VTYPE_DOUBLE) {
|
||||
return ScalarResult::UnsignedTruncatedValue;
|
||||
|
@ -530,8 +529,7 @@ ScalarResult
|
|||
ScalarString::SetValue(nsIVariant* aValue)
|
||||
{
|
||||
// Check that we got the correct data type.
|
||||
uint16_t type;
|
||||
aValue->GetDataType(&type);
|
||||
uint16_t type = aValue->GetDataType();
|
||||
if (type != nsIDataType::VTYPE_CHAR &&
|
||||
type != nsIDataType::VTYPE_WCHAR &&
|
||||
type != nsIDataType::VTYPE_CHAR_STR &&
|
||||
|
@ -610,8 +608,7 @@ ScalarResult
|
|||
ScalarBoolean::SetValue(nsIVariant* aValue)
|
||||
{
|
||||
// Check that we got the correct data type.
|
||||
uint16_t type;
|
||||
aValue->GetDataType(&type);
|
||||
uint16_t type = aValue->GetDataType();
|
||||
if (type != nsIDataType::VTYPE_BOOL &&
|
||||
type != nsIDataType::VTYPE_INT8 &&
|
||||
type != nsIDataType::VTYPE_INT16 &&
|
||||
|
|
|
@ -32,10 +32,7 @@ class PrefsHelper
|
|||
return false;
|
||||
}
|
||||
|
||||
uint16_t varType = nsIDataType::VTYPE_EMPTY;
|
||||
if (NS_FAILED(aVariant->GetDataType(&varType))) {
|
||||
return false;
|
||||
}
|
||||
uint16_t varType = aVariant->GetDataType();
|
||||
|
||||
int32_t type = java::PrefsHelper::PREF_INVALID;
|
||||
bool boolVal = false;
|
||||
|
@ -110,7 +107,7 @@ class PrefsHelper
|
|||
|
||||
uint16_t varType = nsIDataType::VTYPE_EMPTY;
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
rv = aVariant->GetDataType(&varType);
|
||||
varType = aVariant->GetDataType();
|
||||
}
|
||||
|
||||
// We use set-to-empty to signal the pref was handled.
|
||||
|
|
|
@ -64,7 +64,7 @@ struct nsIDataType
|
|||
[scriptable, uuid(81e4c2de-acac-4ad6-901a-b5fb1b851a0d)]
|
||||
interface nsIVariant : nsISupports
|
||||
{
|
||||
[noscript] readonly attribute uint16_t dataType;
|
||||
[notxpcom,nostdcall] readonly attribute uint16_t dataType;
|
||||
|
||||
[noscript] uint8_t getAsInt8();
|
||||
[noscript] int16_t getAsInt16();
|
||||
|
|
|
@ -1208,15 +1208,11 @@ nsDiscriminatedUnion::ConvertToArray(uint16_t* aType, nsIID* aIID,
|
|||
nsresult
|
||||
nsDiscriminatedUnion::SetFromVariant(nsIVariant* aValue)
|
||||
{
|
||||
uint16_t type;
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
|
||||
Cleanup();
|
||||
|
||||
rv = aValue->GetDataType(&type);
|
||||
if (NS_FAILED(rv)) {
|
||||
return rv;
|
||||
}
|
||||
uint16_t type = aValue->GetDataType();
|
||||
|
||||
switch (type) {
|
||||
CASE__SET_FROM_VARIANT_VTYPE_CAST(VTYPE_INT8, (uint8_t*), mInt8Value,
|
||||
|
@ -1617,11 +1613,10 @@ nsVariantBase::nsVariantBase()
|
|||
// For all the data getters we just forward to the static (and sharable)
|
||||
// 'ConvertTo' functions.
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsVariantBase::GetDataType(uint16_t* aDataType)
|
||||
uint16_t
|
||||
nsVariantBase::GetDataType()
|
||||
{
|
||||
*aDataType = mData.GetType();
|
||||
return NS_OK;
|
||||
return mData.GetType();
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
|
|
Загрузка…
Ссылка в новой задаче