Hi,

I�m using MathLib in my application and never had problems with it. But,
when I received a new Palm ( Zire 21 ), the problems started to me :-(

First, the problem with raw Ir, so, solved :-)

Now, the problem is with the MathLib, I think. When the user enter in the
software, and go out ( withou any operation with the software ) the
software crashes, in Zire 21, the software frozen, in Tungsten T2 the palm
resets :-(

So, how I get this idea ? When I take off the code where I load and unload
the MathLib, the software doesn�t crash.

My software is segmented, with 120 kb , the AppStart and AppStop routines,
and MathLib.c are in the first segment.

Can anyone help me ?

Below, my AppStart and AppStop routines:

/*!
 *
 * \fn static Err AppStart(void)
 *
 * \brief   Get the current application's preferences.
 *
 *
 * \return  Err value 0 if nothing went wrong
 *
 * \note
 * REVISION HISTORY:
 *
 *
 ***********************************************************************/
static Err AppStart(void)
{
      Err err;
    Word prefsSize;

      err = SysLibFind(MathLibName, &MathLibRef);
      if(err)
            err = SysLibLoad(LibType, MathLibCreator, &MathLibRef);
      ErrFatalDisplayIf(err, szErrMsg[19]);
      err = MathLibOpen(MathLibRef, MathLibVersion);
      ErrFatalDisplayIf(err, szErrMsg[20]);

      // Read the saved preferences / saved-state information.
      prefsSize = sizeof(LogPalmPreference);
      if (PrefGetAppPreferences(appFileCreator, appPrefID, &prefs,
&prefsSize, true) == noPreferenceFound) {
            CreateDefaultPrefs();
      }

      //Inicaliza�ao das bases de dados
      err = dbOpenDataBaseByName(INDEX_DB_NAME, dmHdrAttrBackup,
&dbLogIndex, true);

      if(err) {
            ShowMsg(MsgEngAlert,szErrMsg[13]);
            return err;
      }

      gNextPoll = TimGetTicks() + POLL_INTERVAL;

      return 0;
}


/*!
 *
 * \fn static void AppStop(void)
 *
 * \brief Save the current state of the application.
 *
 *
 * \return    nothing
 *
 * \note
 * REVISION HISTORY:
 *
 *
 ***********************************************************************/
static void AppStop(void)
{

      Err   error;
      UInt16      openCount;


      DmCloseDatabase(dbLogIndex);

      if(DmFindDatabase(0, LOG_VIEW_DB_NAME)) {
            if(DmOpenDatabaseInfo(dbDownloadView, NULL, &openCount, NULL,
NULL, NULL) == errNone) {
                  if(openCount > 0 ) {
                        DmCloseDatabase(dbDownloadView);
                  }
                  dbKillByName(LOG_VIEW_DB_NAME);
            }
      }
      else {
            DmGetLastErr();
      }

      // Write the saved preferences / saved-state information.  This data
      // will be backed up during a HotSync.
      PrefSetAppPreferences (appFileCreator, appPrefID, appPrefVersionNum,
            &prefs, sizeof (prefs), true);

//    ShowMsg(MsgEngAlert, "Vai Fechar a MathLibRef");
      error = MathLibClose(MathLibRef, &openCount);
//    ShowMsg(MsgEngAlert, "Fechou a MathLibRef");
      ErrFatalDisplayIf(error, szErrMsg[21]);
      if (openCount == 0) {
      //    ShowMsg(MsgEngAlert, "Vai remover a MathLibRef");
      SysLibRemove(MathLibRef);
  //        ShowMsg(MsgEngAlert, "Removeu a MathLibRef");
    }

}


Regards,
---
Alexandre Estanislau Puhl
[EMAIL PROTECTED]
Novus Produtos Eletr�nicos Ltda
http://www.novus.com.br
Tel. +55 51 3323-3637
Fax. +55 51 3323-3644


--
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to