Bug 1071177 - Introduce JSIDVariant type for CPOWs. r=billm

This commit is contained in:
Tom Schuster
2014-10-07 11:29:02 +02:00
parent 068e9685ef
commit 37f7f44bd6
10 changed files with 190 additions and 120 deletions

View File

@@ -49,6 +49,12 @@ struct OutVariant
explicit OutVariant(const JSVariant &variant) : variant(variant) {}
};
struct Identifier
{
JSIDVariant variant;
explicit Identifier(const JSIDVariant &variant) : variant(variant) {}
};
class Logging
{
public:
@@ -184,6 +190,25 @@ class Logging
}
}
void format(const Identifier &id, nsCString &out) {
switch (id.variant.type()) {
case JSIDVariant::TnsString: {
nsAutoCString tmp;
format(id.variant.get_nsString(), tmp);
out = nsPrintfCString("\"%s\"", tmp.get());
break;
}
case JSIDVariant::Tint32_t: {
out = nsPrintfCString("%d", id.variant.get_int32_t());
break;
}
default: {
out = "Unknown";
break;
}
}
}
private:
JavaScriptShared *shared;
JSContext *cx;