fixed error handling in qse_dir_init()
This commit is contained in:
parent
034d3e9c04
commit
105c862230
@ -1477,7 +1477,7 @@ void* StdAwk::modsym (void* handle, const qse_char_t* name)
|
|||||||
qse_mchar_t* mname;
|
qse_mchar_t* mname;
|
||||||
|
|
||||||
#if defined(QSE_CHAR_IS_MCHAR)
|
#if defined(QSE_CHAR_IS_MCHAR)
|
||||||
mname = name;
|
mname = (qse_mchar_t*)name;
|
||||||
#else
|
#else
|
||||||
mname = qse_wcstombsdup (name, QSE_NULL, this->getMmgr());
|
mname = qse_wcstombsdup (name, QSE_NULL, this->getMmgr());
|
||||||
if (!mname)
|
if (!mname)
|
||||||
|
@ -1331,7 +1331,7 @@ qse_wchar_t* qse_awk_rtx_valtowcsdup (
|
|||||||
out.type = QSE_AWK_RTX_VALTOSTR_CPLDUP;
|
out.type = QSE_AWK_RTX_VALTOSTR_CPLDUP;
|
||||||
if (qse_awk_rtx_valtostr (rtx, v, &out) <= -1) return QSE_NULL;
|
if (qse_awk_rtx_valtostr (rtx, v, &out) <= -1) return QSE_NULL;
|
||||||
|
|
||||||
wcs = qse_mbsntombsdup (out.u.cpldup.ptr, out.u.cpldup.len, len, rtx->awk->mmgr);
|
wcs = qse_mbsntowcsdup (out.u.cpldup.ptr, out.u.cpldup.len, len, rtx->awk->mmgr);
|
||||||
QSE_AWK_FREE (rtx->awk, out.u.cpldup.ptr);
|
QSE_AWK_FREE (rtx->awk, out.u.cpldup.ptr);
|
||||||
return wcs;
|
return wcs;
|
||||||
#else
|
#else
|
||||||
|
@ -104,6 +104,8 @@ void* qse_dir_getxtn (qse_dir_t* dir)
|
|||||||
|
|
||||||
int qse_dir_init (qse_dir_t* dir, qse_mmgr_t* mmgr, const qse_char_t* path, int flags)
|
int qse_dir_init (qse_dir_t* dir, qse_mmgr_t* mmgr, const qse_char_t* path, int flags)
|
||||||
{
|
{
|
||||||
|
int n;
|
||||||
|
|
||||||
QSE_MEMSET (dir, 0, QSE_SIZEOF(*dir));
|
QSE_MEMSET (dir, 0, QSE_SIZEOF(*dir));
|
||||||
|
|
||||||
dir->mmgr = mmgr;
|
dir->mmgr = mmgr;
|
||||||
@ -120,7 +122,14 @@ int qse_dir_init (qse_dir_t* dir, qse_mmgr_t* mmgr, const qse_char_t* path, int
|
|||||||
dir->h = INVALID_HANDLE_VALUE;
|
dir->h = INVALID_HANDLE_VALUE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return reset_to_path (dir, path);
|
n = reset_to_path (dir, path);
|
||||||
|
if (n <= -1)
|
||||||
|
{
|
||||||
|
qse_mbs_fini (&dir->mbuf);
|
||||||
|
qse_str_fini (&dir->tbuf);
|
||||||
|
}
|
||||||
|
|
||||||
|
return n;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void close_dir_safely (qse_dir_t* dir)
|
static void close_dir_safely (qse_dir_t* dir)
|
||||||
@ -384,6 +393,7 @@ static int reset_to_path (qse_dir_t* dir, const qse_char_t* path)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
if (dp == QSE_NULL) return -1;
|
||||||
|
|
||||||
dir->dp = dp;
|
dir->dp = dp;
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user