url = si_GetURL(URLName);
url = si_GetURL(host);
si_RemoveUser(char *URLName, char *userName, PRBool save) {  si_SignonURLStruct * url;  si_SignonUserStruct * user;  si_SignonDataStruct * data;  /* do nothing if signon preference is not enabled */  if (!si_GetSignonRememberingPref()) {    return PR_FALSE;  }  si_lock_signon_list();  /* get URL corresponding to URLName (or first URL if URLName is NULL) */  url = si_GetURL(URLName);  if (!url) {    /* URL not found */    si_unlock_signon_list();    return PR_FALSE;  }  /* free the data in each node of the specified user node for this URL */  if (userName == NULL) {    /* no user specified so remove the first one */    user = (si_SignonUserStruct *) (url->signonUser_list->ElementAt(0));  } else {    /* find the specified user */    PRInt32 userCount = LIST_COUNT(url->signonUser_list);    for (PRInt32 i=0; i<userCount; i++) {      user = NS_STATIC_CAST(si_SignonUserStruct*, url->signonUser_list->ElementAt(i));      PRInt32 dataCount = LIST_COUNT(user->signonData_list);      for (PRInt32 ii=0; ii<dataCount; ii++) {        data = NS_STATIC_CAST(si_SignonDataStruct*, user->signonData_list->ElementAt(ii));        if (PL_strcmp(data->value, userName)==0) {          goto foundUser;        }      }    }    si_unlock_signon_list();    return PR_FALSE; /* user not found so nothing to remove */    foundUser: ;  }  /* free the items in the data list */  PRInt32 dataCount = LIST_COUNT(user->signonData_list);  for (PRInt32 j=0; j<dataCount; j++) {    data = NS_STATIC_CAST(si_SignonDataStruct*, user->signonData_list->ElementAt(j));    PR_Free(data->name);    PR_Free(data->value);  }  /* free the data list */  delete user->signonData_list;  /* free the user node */  url->signonUser_list->RemoveElement(user);  /* remove this URL if it contains no more users */  if (LIST_COUNT(url->signonUser_list) == 0) {    PR_Free(url->URLName);    si_signon_list->RemoveElement(url);  }  /* write out the change to disk */  if (save) {    si_signon_list_changed = PR_TRUE;    si_SaveSignonDataLocked(PR_TRUE);  }  si_unlock_signon_list();  return PR_TRUE;}