small bugfixes and leaks, patch by João Silva

This commit is contained in:
Vítor Santos Costa
2014-06-14 10:27:39 +01:00
parent 6286de06be
commit f00a6d5a40
19 changed files with 57 additions and 21 deletions

View File

@@ -142,10 +142,12 @@ RL_Tree* copy_rl(RL_Tree *tree) {
buf_ptr=(RL_Node*)calloc(tree->size,NODE_SIZE);
if( new==NULL ) {
printf("new==NULL");
free(buf_ptr);
return NULL;
}
if( buf_ptr==NULL ) {
printf("buf_ptr==NULL---%lu",tree->size);
free(new);
return NULL;
}
memcpy(new,tree,sizeof(RL_Tree));

View File

@@ -481,7 +481,7 @@ file_property(void)
static int
p_mktemp(void)
{
#if HAVE_MKTEMP || defined(__MINGW32__) || _MSC_VER
#if HAVE_MKSTEMP || HAVE_MKTEMP || defined(__MINGW32__) || _MSC_VER
char *s, tmp[BUF_SIZE];
s = (char *)YAP_AtomName(YAP_AtomOfTerm(YAP_ARG1));
#if HAVE_STRNCPY
@@ -495,6 +495,13 @@ p_mktemp(void)
return(YAP_Unify(YAP_ARG3, YAP_MkIntTerm(errno)));
}
return(YAP_Unify(YAP_ARG2,YAP_MkAtomTerm(YAP_LookupAtom(s))));
#elif HAVE_MKSTEMP
strcpy(tmp, "/tmp/TEST_tmpXXXXXXXX");
if(mkstemp(tmp) == -1) {
/* return an error number */
return(YAP_Unify(YAP_ARG3, YAP_MkIntTerm(errno)));
}
return YAP_Unify(YAP_ARG2,YAP_MkAtomTerm(YAP_LookupAtom(tmp)));
#else
if ((s = mktemp(tmp)) == NULL) {
/* return an error number */
@@ -511,7 +518,13 @@ p_mktemp(void)
static int
p_tmpnam(void)
{
#if HAVE_MKTEMP
#if HAVE_MKSTEMP
char s[22];
strcpy(s, "/tmp/TEST_tmpXXXXXXXX");
if(mkstemp(s) == -1)
return FALSE;
return YAP_Unify(YAP_ARG1,YAP_MkAtomTerm(YAP_LookupAtom(s)));
#elif HAVE_MKTEMP
char *s;
if (!(s = mktemp("/tmp/YAP_tmpXXXXXXXX")))
return FALSE;