Bug 1507540 part 6. Make nsIVariant's "type" a notxpcom attribute. r=froydnj

This commit is contained in:
Boris Zbarsky 2018-11-19 20:20:05 -05:00
Родитель 0216588e17
Коммит 64ae41821b
16 изменённых файлов: 44 добавлений и 82 удалений

Просмотреть файл

@ -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