Discussion Board

Results 1 to 11 of 11

Thread: Errors!

  1. #1
    Registered User midday's Avatar
    Join Date
    Nov 2007
    Posts
    45
    Давайте обсуждать всякие ошибки тут..
    У меня при выходе из приложения выходит ошибка. Ну диалоговое окно со знаком "STOP".

    Then app closed i have a problem:

    Applicaton closed: <appName> Alloc: 305f09600

    Что это значит ?

    What does it mean?

  2. #2
    Super Contributor ivey's Avatar
    Join Date
    Jun 2006
    Location
    Moscow, Russia
    Posts
    803
    Это утечка памяти.

    Эта статья может быть полезна: http://wiki.forum.nokia.com/index.ph...ю_HookLogger
    Regards,
    ivey

  3. #3
    Registered User midday's Avatar
    Join Date
    Nov 2007
    Posts
    45
    Code:
    	TPoint* pointList=new (ELeave) TPoint[numberOfPoints];
            CleanupStack::PushL (pointList);
    	for( int i=0;i< numberOfPoints;i++)
    		{
    			/*do somethink this pointList[i]*/
    		}
            fbsGc->DrawPolygon(pointList,numberOfPoints);
    	CleanupStack::PopAndDestroy(pointList);
    Why here popup -42 error ?
    If i do not delete pointList, then its OK, but here memorLeak i have. ^_^

    Так черт.. Вот короче, странно,но когда я удаляю pointList , то у меня выходит ошибка... Если не удаляю, то утечка мозгов получается.. Что делать ?

  4. #4
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    Quote Originally Posted by midday View Post
    Code:
    	TPoint* pointList=new (ELeave) TPoint[numberOfPoints];
            CleanupStack::PushL (pointList);
    	for( int i=0;i< numberOfPoints;i++)
    		{
    			/*do somethink this pointList[i]*/
    		}
            fbsGc->DrawPolygon(pointList,numberOfPoints);
    	CleanupStack::PopAndDestroy(pointList);
    Why here popup -42 error ?
    If i do not delete pointList, then its OK, but here memorLeak i have. ^_^

    Так черт.. Вот короче, странно,но когда я удаляю pointList , то у меня выходит ошибка... Если не удаляю, то утечка мозгов получается.. Что делать ?
    Потому что CleanupStack::PopAndDestroy() извлекает из стека и делает delete, а в данном случае надо delete [].

    Используйте RArray какой-нибудь.
    Last edited by Den123; 2007-12-04 at 13:58.

  5. #5
    Super Contributor ivey's Avatar
    Join Date
    Jun 2006
    Location
    Moscow, Russia
    Posts
    803
    Quote Originally Posted by midday View Post
    Code:
    	TPoint* pointList=new (ELeave) TPoint[numberOfPoints];
            CleanupArrayDeletePushL(pointList);
    	for( int i=0;i< numberOfPoints;i++)
    		{
    			/*do somethink this pointList[i]*/
    		}
            fbsGc->DrawPolygon(pointList,numberOfPoints);
    	CleanupStack::PopAndDestroy();
    Вот так должно быть нормально
    Regards,
    ivey

  6. #6
    Ей, а ты зачто TPoint и new[] делаешь?
    CleanupStack "обслуживает" СBase derived классы.

    TPoint-у в массиве если нада, то храни в RArray<TPoint> или CArrayFix< TPoint >
    если именно для функции DrawPolygon.

    DrawPolygon(const TPoint *aPointList .... ) видимо с целью оптимизации добавили.

  7. #7
    Super Contributor ivey's Avatar
    Join Date
    Jun 2006
    Location
    Moscow, Russia
    Posts
    803
    Quote Originally Posted by ValentinK View Post
    CleanupStack "обслуживает" СBase derived классы.
    Это неверное утверждение. CleanupStack "обслуживает" все, что не удаляется автоматически, т.е. может привести к утечкам памяти.

    На счет RArray и CArrayXXX согласен, но использовать обычные массивы тоже никто не запрещает.
    Regards,
    ivey

  8. #8
    Registered User midday's Avatar
    Join Date
    Nov 2007
    Posts
    45
    Спасибо большое ;-)
    Экспириенс повышается постепенно
    Ну я привык так )) вот и всё.. Потом перейду на CArray...

  9. #9
    Quote Originally Posted by ivey View Post
    Это неверное утверждение. CleanupStack "обслуживает" все, что не удаляется автоматически, т.е. может привести к утечкам памяти.

    На счет RArray и CArrayXXX согласен, но использовать обычные массивы тоже никто не запрещает.
    Ну не согласен с тем что ""обслуживает" все, что не удаляется автоматически" это тоже не верно, тк он удаляет корректно примитивные типы, что есть в данном случае, классы с виртуальным деструктором ( аля CBase derived ) и те у кого имеется TCleanupOperation функция.

  10. #10
    Nokia Developer Champion Den123's Avatar
    Join Date
    Jul 2007
    Location
    Magnitogorsk, Russia
    Posts
    536
    Quote Originally Posted by midday View Post
    Спасибо большое ;-)
    Экспириенс повышается постепенно
    Ну я привык так )) вот и всё.. Потом перейду на CArray...
    Мне тоже кажется, что лучше использовать потомка CArrayFix в данном случае...

    Про классы для организации коллекций можно почитать тут:
    http://wiki.forum.nokia.com/index.ph...86%D0%B8%D0%B9

  11. #11
    Super Contributor ivey's Avatar
    Join Date
    Jun 2006
    Location
    Moscow, Russia
    Posts
    803
    Quote Originally Posted by ValentinK View Post
    Ну не согласен с тем что ""обслуживает" все, что не удаляется автоматически"
    Jo Stichbury, "Symbian OS Explained":
    Objects that are not otherwise leave-safe should be placed on the
    cleanup stack before calling code that may leave.


    Quote Originally Posted by ValentinK View Post
    он удаляет корректно примитивные типы, что есть в данном случае, классы с виртуальным деструктором ( аля CBase derived ) и те у кого имеется TCleanupOperation функция.
    CleanupStack::PushL() имеет 3 варианта:
    Code:
    CleanupStack::PushL(CBase *aPtr); // a
    CleanupStack::PushL(TCleanupItem anItem); // b
    CleanupStack::PushL(TAny *aPtr); // c
    a) это для тех, кто наследуется от CBase и, соответственно, имеет виртуальный деструктор. При уничтожении таких объектов вызывается деструктор;
    b) для тех, кто имеет какой-то метод для освобождения ресурсов (Close(), Release(), Delete() и т.д.). Этот метод и будет вызываться;
    c) для всех остальных. При их уничтожении просто вызывается User::Free().
    Regards,
    ivey

Similar Threads

  1. Bluetooth Connection woes
    By GrahamKelly in forum Mobile Java Networking & Messaging & Security
    Replies: 1
    Last Post: 2007-12-02, 06:37
  2. Strange compilation errors
    By Wintry in forum Symbian C++
    Replies: 2
    Last Post: 2006-10-21, 17:17
  3. ETel GSM errors
    By isymdev in forum Symbian C++
    Replies: 0
    Last Post: 2006-06-21, 08:01
  4. errors while porting application
    By iti_jha in forum Symbian C++
    Replies: 6
    Last Post: 2006-06-14, 10:21
  5. how to resolve these linker errors...?
    By peter_k_john in forum Carbide.c++ IDE and plug-ins (Closed)
    Replies: 4
    Last Post: 2005-11-01, 04:29

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Nokia Developer aims to help you create apps and publish them so you can connect with users around the world.

京ICP备05048969号  © Copyright Nokia 2013 All rights reserved