allocate space
This commit is contained in:
parent
ef38613229
commit
41ccbf7367
1
C/text.c
1
C/text.c
@ -370,7 +370,6 @@ unsigned char *Yap_readText(seq_tv_t *inp, size_t *lengp) {
|
|||||||
s = (char *)s0;
|
s = (char *)s0;
|
||||||
else
|
else
|
||||||
s = Malloc(0);
|
s = Malloc(0);
|
||||||
AUX_ERROR(inp->val.t, MaxTmp(PASS_REGS1), s, char);
|
|
||||||
if (snprintf(s, MaxTmp(PASS_REGS1) - 1, Int_FORMAT,
|
if (snprintf(s, MaxTmp(PASS_REGS1) - 1, Int_FORMAT,
|
||||||
IntegerOfTerm(inp->val.t)) < 0) {
|
IntegerOfTerm(inp->val.t)) < 0) {
|
||||||
AUX_ERROR(inp->val.t, 2 * MaxTmp(PASS_REGS1), s, char);
|
AUX_ERROR(inp->val.t, 2 * MaxTmp(PASS_REGS1), s, char);
|
||||||
|
10
C/write.c
10
C/write.c
@ -1275,6 +1275,7 @@ char *Yap_TermToString(Term t, size_t *lengthp, encoding_t enc, int flags) {
|
|||||||
CACHE_REGS
|
CACHE_REGS
|
||||||
int sno = Yap_open_buf_write_stream(enc, flags);
|
int sno = Yap_open_buf_write_stream(enc, flags);
|
||||||
const char *sf;
|
const char *sf;
|
||||||
|
DBTerm *e = LOCAL_BallTerm;
|
||||||
|
|
||||||
if (sno < 0)
|
if (sno < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -1286,8 +1287,11 @@ char *Yap_TermToString(Term t, size_t *lengthp, encoding_t enc, int flags) {
|
|||||||
Yap_plwrite(t, GLOBAL_Stream + sno, 0, flags, GLOBAL_MaxPriority);
|
Yap_plwrite(t, GLOBAL_Stream + sno, 0, flags, GLOBAL_MaxPriority);
|
||||||
|
|
||||||
sf = Yap_MemExportStreamPtr(sno);
|
sf = Yap_MemExportStreamPtr(sno);
|
||||||
|
size_t len = strlen(sf);
|
||||||
|
char *new = malloc( len + 1 );
|
||||||
|
strcpy( new, sf );
|
||||||
Yap_CloseStream(sno);
|
Yap_CloseStream(sno);
|
||||||
if (Yap_HasException())
|
if (e)
|
||||||
return NULL;
|
LOCAL_BallTerm = e;
|
||||||
return (char *)sf;
|
return new;
|
||||||
}
|
}
|
||||||
|
@ -806,6 +806,7 @@ static inline char *Yap_AtomToUTF8Text(Atom at, const char *s USES_REGS) {
|
|||||||
out.val.c0 = s;
|
out.val.c0 = s;
|
||||||
out.type |= YAP_STRING_WITH_BUFFER;
|
out.type |= YAP_STRING_WITH_BUFFER;
|
||||||
} else {
|
} else {
|
||||||
|
out.type |= YAP_STRING_MALLOC;
|
||||||
out.val.c = NULL;
|
out.val.c = NULL;
|
||||||
}
|
}
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
|
Reference in New Issue
Block a user