if (!wallet_tablesInitialized & fetchTables) {
if (!wallet_tablesInitialized && fetchTables) {
wallet_Initialize(PRBool fetchTables) {  static PRBool wallet_tablesInitialized = PR_FALSE;  static PRBool wallet_keyInitialized = PR_FALSE;  /* initialize tables    * Note that we don't initialize the tables if this call was made from the wallet   * editor.  The tables are certainly not needed since all we are doing is displaying   * the contents of the user wallet.  Furthermore, there is a problem which causes the   * window to come up blank in that case.  Has something to do with the fact that we   * were being called from javascript in this case.  So to avoid the problem, the    * fetchTables parameter was added and it is set to PR_FALSE in the case of the   * wallet editor and PR_TRUE in all other cases   */  if (!wallet_tablesInitialized & fetchTables) {#ifdef DEBUG//wallet_ClearStopwatch();//wallet_ResumeStopwatch();#endif    wallet_FetchFromNetCenter();#ifdef DEBUG//wallet_PauseStopwatch();//wallet_DumpStopwatch();#endif    wallet_ReadFromFile("FieldSchema.tbl", wallet_FieldToSchema_list, PR_FALSE, PR_FALSE);    wallet_ReadFromURLFieldToSchemaFile("URLFieldSchema.tbl", wallet_URLFieldToSchema_list);    wallet_ReadFromFile("SchemaConcat.tbl", wallet_SchemaConcat_list, PR_FALSE, PR_FALSE);    wallet_tablesInitialized = PR_TRUE;  }  /* see if key has timed out */  if (Wallet_KeyTimedOut()) {    wallet_keyInitialized = PR_FALSE;  }  if (!wallet_keyInitialized) {    Wallet_RestartKey();    PRUnichar * message = Wallet_Localize("IncorrectKey_TryAgain?");    while (!Wallet_SetKey(PR_FALSE)) {      if (Wallet_CancelKey() || (Wallet_KeySize() < 0) || !Wallet_Confirm(message)) {        Recycle(message);        return;      }    }    Recycle(message);    wallet_ReadFromFile(schemaValueFileName, wallet_SchemaToValue_list, PR_TRUE, PR_TRUE);    wallet_keyInitialized = PR_TRUE;  }  /* restart key timeout period */  Wallet_KeyResetTime();#if DEBUG//    fprintf(stdout,"Field to Schema table \n");//    wallet_Dump(wallet_FieldToSchema_list);//    fprintf(stdout,"SchemaConcat table \n");//    wallet_Dump(wallet_SchemaConcat_list);//    fprintf(stdout,"URL Field to Schema table \n");//    char item1[100];//    wallet_MapElement * ptr;//    PRInt32 count = LIST_COUNT(wallet_URLFieldToSchema_list);//    for (PRInt32 i=0; i<count; i++) {//      ptr = NS_STATIC_CAST(wallet_MapElement*, wallet_URLFieldToSchema_list->ElementAt(i));//      ptr->item1->ToCString(item1, 100);//      fprintf(stdout, item1);//      fprintf(stdout,"\n");//      wallet_Dump(ptr->itemList);//    }//    fprintf(stdout,"Schema to Value table \n");//    wallet_Dump(wallet_SchemaToValue_list);#endif}