- added sc_free_apps to undo sc_enum_apps

git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@1122 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
okir 2003-05-15 13:32:17 +00:00
parent e85ebc6a9d
commit b68cb1e0b3
3 changed files with 16 additions and 9 deletions

View File

@ -301,16 +301,8 @@ static struct sc_card * sc_card_new()
static void sc_card_free(struct sc_card *card)
{
int i;
assert(sc_card_valid(card));
for (i = 0; i < card->app_count; i++) {
if (card->app[i]->label)
free(card->app[i]->label);
if (card->app[i]->ddo)
free(card->app[i]->ddo);
free(card->app[i]);
}
sc_free_apps(card);
if (card->ef_dir != NULL)
sc_file_free(card->ef_dir);
free(card->ops);

View File

@ -225,6 +225,20 @@ int sc_enum_apps(struct sc_card *card)
return card->app_count;
}
void sc_free_apps(struct sc_card *card)
{
int i;
for (i = 0; i < card->app_count; i++) {
if (card->app[i]->label)
free(card->app[i]->label);
if (card->app[i]->ddo)
free(card->app[i]->ddo);
free(card->app[i]);
}
card->app_count = -1;
}
const struct sc_app_info * sc_find_app_by_aid(struct sc_card *card,
const u8 *aid, size_t aid_len)
{

View File

@ -789,6 +789,7 @@ int sc_get_cache_dir(struct sc_context *ctx, char *buf, size_t bufsize);
int sc_make_cache_dir(struct sc_context *ctx);
int sc_enum_apps(struct sc_card *card);
void sc_free_apps(struct sc_card *card);
const struct sc_app_info * sc_find_pkcs15_app(struct sc_card *card);
const struct sc_app_info * sc_find_app_by_aid(struct sc_card *card,
const u8 *aid, size_t aid_len);