summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/common/dircache.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/firmware/common/dircache.c b/firmware/common/dircache.c
index 8a75f3b..08457f2 100644
--- a/firmware/common/dircache.c
+++ b/firmware/common/dircache.c
@@ -425,15 +425,18 @@ static void binding_resolve(const struct file_base_info *infop)
}
if (p == dcrivolp->queued0)
+ {
dcrivolp->queued0 = BINDING_NEXT(p);
+ if (dcrivolp->resolved0 == NULL)
+ dcrivolp->resolved0 = p;
+ }
else
{
file_binding_remove_next(prevp, p);
file_binding_insert_first(p);
+ dcrivolp->resolved0 = p;
}
- dcrivolp->resolved0 = p;
-
/* srcinfop may be the actual one */
if (&p->info != infop)
p->info.dcfile = infop->dcfile;
@@ -1375,6 +1378,8 @@ static void sab_process_sub(struct sab *sabp)
infop->fatfile.dircluster = dircluster;
infop->fatfile.e.entry = ce->direntry;
infop->fatfile.e.entries = ce->direntries;
+ infop->dcfile.idx = idx;
+ infop->dcfile.serialnum = ce->serialnum;
} /* end while */
}