X-Git-Url: https://git.saurik.com/apple/javascriptcore.git/blobdiff_plain/1df5f87f1309a8daa30dabdee855f48ae40d14ab..6fe7ccc865dc7d7541b93c5bcaf6368d2c98a174:/qt/api/qscriptprogram_p.h diff --git a/qt/api/qscriptprogram_p.h b/qt/api/qscriptprogram_p.h deleted file mode 100644 index f6882c5..0000000 --- a/qt/api/qscriptprogram_p.h +++ /dev/null @@ -1,133 +0,0 @@ -/* - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef qscriptprogram_p_h -#define qscriptprogram_p_h - -#include "qscriptconverter_p.h" -#include "qscriptprogram.h" -#include -#include -#include - -/* - FIXME The QScriptProgramPrivate potentially could be much faster. In current implementation we - gain CPU time only by avoiding QString -> JSStringRef conversion. In the ideal world we should - have a function inside the JSC C API that could provide us "parse once, execute multiple times" - functionality. -*/ - -class QScriptProgramPrivate : public QSharedData { -public: - inline static QScriptProgramPrivate* get(const QScriptProgram& program); - inline QScriptProgramPrivate(); - inline QScriptProgramPrivate(const QString& sourceCode, - const QString fileName, - int firstLineNumber); - - inline ~QScriptProgramPrivate(); - - inline bool isNull() const; - - inline QString sourceCode() const; - inline QString fileName() const; - inline int firstLineNumber() const; - - inline bool operator==(const QScriptProgramPrivate& other) const; - inline bool operator!=(const QScriptProgramPrivate& other) const; - - inline operator JSStringRef() const; - inline JSStringRef file() const; - inline int line() const; -private: - JSStringRef m_program; - JSStringRef m_fileName; - int m_line; -}; - -QScriptProgramPrivate* QScriptProgramPrivate::get(const QScriptProgram& program) -{ - return const_cast(program.d_ptr.constData()); -} - -QScriptProgramPrivate::QScriptProgramPrivate() - : m_program(0) - , m_fileName(0) - , m_line(-1) -{} - -QScriptProgramPrivate::QScriptProgramPrivate(const QString& sourceCode, - const QString fileName, - int firstLineNumber) - : m_program(QScriptConverter::toString(sourceCode)) - , m_fileName(QScriptConverter::toString(fileName)) - , m_line(firstLineNumber) -{} - -QScriptProgramPrivate::~QScriptProgramPrivate() -{ - if (!isNull()) { - JSStringRelease(m_program); - JSStringRelease(m_fileName); - } -} - -bool QScriptProgramPrivate::isNull() const -{ - return !m_program; -} - -QString QScriptProgramPrivate::sourceCode() const -{ - return QScriptConverter::toString(m_program); -} - -QString QScriptProgramPrivate::fileName() const -{ - return QScriptConverter::toString(m_fileName); -} - -int QScriptProgramPrivate::firstLineNumber() const -{ - return m_line; -} - -bool QScriptProgramPrivate::operator==(const QScriptProgramPrivate& other) const -{ - return m_line == other.m_line - && JSStringIsEqual(m_fileName, other.m_fileName) - && JSStringIsEqual(m_program, other.m_program); -} - -bool QScriptProgramPrivate::operator!=(const QScriptProgramPrivate& other) const -{ - return m_line != other.m_line - || !JSStringIsEqual(m_fileName, other.m_fileName) - || !JSStringIsEqual(m_program, other.m_program); -} - -QScriptProgramPrivate::operator JSStringRef() const -{ - return m_program; -} - -JSStringRef QScriptProgramPrivate::file() const {return m_fileName; } -int QScriptProgramPrivate::line() const { return m_line; } - -#endif // qscriptprogram_p_h