pike.git
/
src
/
program.c
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/program.c:7701:
if(shift) { size_t bufsize; char *buffer; PCHARP from=MKPCHARP(file, shift); size_t ptr=0; if (malloced) { bufsize = len + 21; buffer = malloc (bufsize);
+
if(!buffer) return NULL;
} else { bufsize = NELEM(buf) - 1; buffer = buf; } for (; len--; INC_PCHARP(from, 1)) { size_t space; int chr = EXTRACT_PCHARP(from); space = chr > 255 ? 20 : 1; if (ptr + space > bufsize) { if (malloced) {
-
+
char *new_buffer;
bufsize = (bufsize << 1) + space + 1;
-
buffer = realloc (buffer, bufsize);
+
new_
buffer = realloc (buffer, bufsize);
+
if(!new_buffer)
+
{
+
free(buffer);
+
return NULL;
}
-
+
buffer = new_buffer;
+
}
else break; } if(chr > 255) { sprintf(buffer+ptr,"\\u%04X",chr); ptr+=strlen(buffer+ptr); }else{ buffer[ptr++]=chr;