From 0dee6ea223a124a8b8d62ae59f7a08cdb3617f0d Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Mon, 17 Oct 2011 22:00:09 +0000 Subject: [PATCH] Add some convenience overloads to UnknownElement's constructor Originally committed to SVN as r5749. --- aegisub/libaegisub/common/log.cpp | 22 +++++++------- .../include/libaegisub/cajun/elements.h | 6 ++-- .../include/libaegisub/cajun/elements.inl | 30 ++++++++++--------- 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/aegisub/libaegisub/common/log.cpp b/aegisub/libaegisub/common/log.cpp index 6a2bcc08d..67d4394b2 100644 --- a/aegisub/libaegisub/common/log.cpp +++ b/aegisub/libaegisub/common/log.cpp @@ -80,26 +80,26 @@ LogSink::~LogSink() { for (unsigned int i=0; i < sink.size(); i++) { json::Object entry; - entry["sec"] = (double)sink[i]->tv.tv_sec; - entry["usec"] = (double)sink[i]->tv.tv_usec; - entry["severity"] = (double)sink[i]->severity, - entry["section"] = (std::string)sink[i]->section; - entry["file"] = (std::string)sink[i]->file; - entry["func"] = (std::string)sink[i]->func; - entry["line"] = (double)sink[i]->line; + entry["sec"] = sink[i]->tv.tv_sec; + entry["usec"] = sink[i]->tv.tv_usec; + entry["severity"] = sink[i]->severity, + entry["section"] = sink[i]->section; + entry["file"] = sink[i]->file; + entry["func"] = sink[i]->func; + entry["line"] = sink[i]->line; entry["message"] = std::string(sink[i]->message, sink[i]->len); array.push_back(entry); } json::Array timeval_open; - timeval_open.push_back((double)time_start.tv_sec); - timeval_open.push_back((double)time_start.tv_usec); + timeval_open.push_back(time_start.tv_sec); + timeval_open.push_back(time_start.tv_usec); root["timeval"]["open"] = timeval_open; json::Array timeval_close; - timeval_close.push_back((double)time_close.tv_sec); - timeval_close.push_back((double)time_close.tv_usec); + timeval_close.push_back(time_close.tv_sec); + timeval_close.push_back(time_close.tv_usec); root["timeval"]["close"] = timeval_close; diff --git a/aegisub/libaegisub/include/libaegisub/cajun/elements.h b/aegisub/libaegisub/include/libaegisub/cajun/elements.h index a00dc56c4..4579da4d2 100644 --- a/aegisub/libaegisub/include/libaegisub/cajun/elements.h +++ b/aegisub/libaegisub/include/libaegisub/cajun/elements.h @@ -64,8 +64,10 @@ public: UnknownElement(const UnknownElement& unknown); UnknownElement(const Object& object); UnknownElement(const Array& array); - UnknownElement(const Number& number); - UnknownElement(const Boolean& boolean); + UnknownElement(double number); + UnknownElement(int number); + UnknownElement(bool boolean); + UnknownElement(const char *string); UnknownElement(const String& string); UnknownElement(const Null& null); diff --git a/aegisub/libaegisub/include/libaegisub/cajun/elements.inl b/aegisub/libaegisub/include/libaegisub/cajun/elements.inl index 55ca250bd..78b2922d4 100644 --- a/aegisub/libaegisub/include/libaegisub/cajun/elements.inl +++ b/aegisub/libaegisub/include/libaegisub/cajun/elements.inl @@ -99,26 +99,28 @@ inline UnknownElement::UnknownElement() : m_pImp( inline UnknownElement::UnknownElement(const UnknownElement& unknown) : m_pImp( unknown.m_pImp->Clone()) {} inline UnknownElement::UnknownElement(const Object& object) : m_pImp( new Imp_T(object) ) {} inline UnknownElement::UnknownElement(const Array& array) : m_pImp( new Imp_T(array) ) {} -inline UnknownElement::UnknownElement(const Number& number) : m_pImp( new Imp_T(number) ) {} -inline UnknownElement::UnknownElement(const Boolean& boolean) : m_pImp( new Imp_T(boolean) ) {} +inline UnknownElement::UnknownElement(double number) : m_pImp( new Imp_T(number) ) {} +inline UnknownElement::UnknownElement(int number) : m_pImp( new Imp_T(number) ) {} +inline UnknownElement::UnknownElement(bool boolean) : m_pImp( new Imp_T(boolean) ) {} +inline UnknownElement::UnknownElement(const char *string) : m_pImp( new Imp_T(string) ) {} inline UnknownElement::UnknownElement(const String& string) : m_pImp( new Imp_T(string) ) {} inline UnknownElement::UnknownElement(const Null& null) : m_pImp( new Imp_T(null) ) {} inline UnknownElement::~UnknownElement() { delete m_pImp; } -inline UnknownElement::operator const Object& () const { return CastTo(); } -inline UnknownElement::operator const Array& () const { return CastTo(); } -inline UnknownElement::operator const Number& () const { return CastTo(); } -inline UnknownElement::operator const Boolean& () const { return CastTo(); } -inline UnknownElement::operator const String& () const { return CastTo(); } -inline UnknownElement::operator const Null& () const { return CastTo(); } +inline UnknownElement::operator const Object& () const { return CastTo(); } +inline UnknownElement::operator const Array& () const { return CastTo(); } +inline UnknownElement::operator const Number& () const { return CastTo(); } +inline UnknownElement::operator const Boolean& () const { return CastTo(); } +inline UnknownElement::operator const String& () const { return CastTo(); } +inline UnknownElement::operator const Null& () const { return CastTo(); } -inline UnknownElement::operator Object& () { return ConvertTo(); } -inline UnknownElement::operator Array& () { return ConvertTo(); } -inline UnknownElement::operator Number& () { return ConvertTo(); } -inline UnknownElement::operator Boolean& () { return ConvertTo(); } -inline UnknownElement::operator String& () { return ConvertTo(); } -inline UnknownElement::operator Null& () { return ConvertTo(); } +inline UnknownElement::operator Object& () { return ConvertTo(); } +inline UnknownElement::operator Array& () { return ConvertTo(); } +inline UnknownElement::operator Number& () { return ConvertTo(); } +inline UnknownElement::operator Boolean& () { return ConvertTo(); } +inline UnknownElement::operator String& () { return ConvertTo(); } +inline UnknownElement::operator Null& () { return ConvertTo(); } inline UnknownElement& UnknownElement::operator = (const UnknownElement& unknown) {