crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Постоянно течет память при исполнении скрипта
igor_bogomolov
  опции профиля:
сообщение 6.9.2010, 17:34
Сообщение #1


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Непрерывно течет память при исполнении скрипта. Кто сталкивался с подобным? Может я что то не правильно делаю?
За пример можно взять следующий код

bool Param::scriptEval()
{
    QString sFunction = QString(QLatin1String("function vparam(a,b,c,d,e) { return (e<<16) | a | b | c | d; }"));

    QScriptValue sv = scriptEngine->evaluate(sFunction);
    if (scriptEngine->hasUncaughtException()) {
        qDebug() << tr("Script for param '%1' error: '%2' for '%3'")
                   .arg(m_sName).arg(sv.toString()).arg(sFunction);
        return false;
    }

    QScriptValueList svlArgs;
    svlArgs << 0 << 0 << 0<< 0 << 1;

    QScriptValue fnObj = scriptEngine->globalObject().property(QLatin1String("vparam"));
    QScriptValue fnRes = fnObj.call(QScriptValue(), svlArgs);

    QString sResult = fnRes.toString();
    if (sResult.isEmpty()) {
        qDebug() << tr("Script for param '%1' returns NULL value string: %2")
                .arg(m_sName).arg(sFunction);
        return false;
    }

    qDebug() << sResult.toInt();

    return true;
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
BRE
  опции профиля:
сообщение 6.9.2010, 20:38
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


igor_bogomolov, проверь у себя этот код:
int main( int argc, char **argv )
{
    QCoreApplication app1( argc, argv );

    for( int i = 0; i < 100; ++i )
    {
        QScriptEngine scriptEngine;

        QString sFunction = QString( QLatin1String( "function vparam(a,b,c,d,e) { return (e<<16) | a | b | c | d; }" ) );
        QScriptValue sv = scriptEngine.evaluate( sFunction );
        if( scriptEngine.hasUncaughtException() )
        {
            qDebug() << "Script error";
            return 1;
        }

        QScriptValueList svlArgs;
        svlArgs << 0 << 0 << 0 << 0 << 1;

        QScriptValue fnObj = scriptEngine.globalObject().property( QLatin1String( "vparam" ) );
        QScriptValue fnRes = fnObj.call( QScriptValue(), svlArgs );

        QString sResult = fnRes.toString();
        if( sResult.isEmpty() )
        {
            qDebug() << "Script error";
            return 2;
        }

        qDebug() << sResult.toInt();
    }
    
    return 0;
}


Судя по выводу valgrind у меня ничего не течет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 11:52