Allocation by chunks of 1KiB...
This commit is contained in:
parent
a0ce6d4fef
commit
f9c4eed2e9
30
src/main.c
30
src/main.c
@ -4,6 +4,9 @@
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#define ALLOCATION_CHUNK (1024UL)
|
||||
#define ALLOCATION_LIMIT (1024UL * 1024UL)
|
||||
|
||||
enum { NORMAL, BOLD, DARKNESS, ITALIC, UNDERLINE, BLINK, DUNNO_6, REVERSE, INVISIBLE };
|
||||
enum { GREY, RED, GREEN, YELLOW, BLUE, PINK, CYAN, WHITE, CANCEL };
|
||||
|
||||
@ -245,9 +248,15 @@ static int render_word (
|
||||
++data_offset;
|
||||
} while ((is_separator (buffer [data_offset]) == 0) && (buffer [data_offset] != '\0'));
|
||||
|
||||
free (word);
|
||||
|
||||
return (data_offset);
|
||||
}
|
||||
|
||||
/*
|
||||
Valgrind: Depends on uninitialized value (buffer [0])...?
|
||||
280 : } while ((buffer [buffer_size - 1] != '\0') || (buffer_size != ALLOCATION_LIMIT));
|
||||
285 : while (buffer [offset] != '\0') {
|
||||
*/
|
||||
int main (
|
||||
int argc,
|
||||
char * * argv
|
||||
@ -260,18 +269,21 @@ int main (
|
||||
return (-1);
|
||||
}
|
||||
|
||||
do {
|
||||
++buffer_size;
|
||||
buffer = realloc (buffer, buffer_size);
|
||||
read (STDIN_FILENO, & buffer [buffer_size - 1], sizeof (* buffer));
|
||||
} while ((buffer [buffer_size] != '\0') || (buffer_size != 10000));
|
||||
buffer = realloc (buffer, ALLOCATION_CHUNK);
|
||||
|
||||
do {
|
||||
if ((buffer_size + 1) % ALLOCATION_CHUNK == 0) {
|
||||
buffer = realloc (buffer, ((buffer_size + 1) / ALLOCATION_CHUNK + 1) * ALLOCATION_CHUNK);
|
||||
}
|
||||
buffer [buffer_size] = '\0'; /* Fixing Valgrind warnings... */
|
||||
read (STDIN_FILENO, & buffer [buffer_size], sizeof (* buffer));
|
||||
++buffer_size;
|
||||
buffer = realloc (buffer, buffer_size);
|
||||
buffer [buffer_size] = '\0';
|
||||
} while ((buffer [buffer_size - 1] != '\0') /*|| (buffer_size != ALLOCATION_LIMIT)*/);
|
||||
|
||||
buffer [buffer_size - 1] = '\0';
|
||||
|
||||
/* Checking if long comments work... */
|
||||
// Checking if long comments work...
|
||||
// Checking if short comments work...
|
||||
|
||||
while (buffer [offset] != '\0') {
|
||||
if ((buffer [offset] == '/') && (buffer [offset + 1] == '/')) {
|
||||
|
Loading…
Reference in New Issue
Block a user