small bugfixes and leaks, patch by João Silva
This commit is contained in:
@@ -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));
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user