Skip to content

Commit

Permalink
Merge branch 'fix_imcc_memory_leak'
Browse files Browse the repository at this point in the history
  • Loading branch information
leto committed Jul 14, 2011
2 parents 82e6c72 + a792bdd commit 6c82876
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 15 deletions.
4 changes: 2 additions & 2 deletions compilers/imcc/imcc.l
Original file line number Diff line number Diff line change
Expand Up @@ -1351,8 +1351,8 @@ imcc_cleanup_input(ARGMOD(imc_info_t * imcc), PIOHANDLE file,
{
if (is_file)
PIO_CLOSE(imcc->interp, file);
else
Parrot_str_free_cstring(source_c);

Parrot_str_free_cstring(source_c);
}

INTVAL
Expand Down
36 changes: 23 additions & 13 deletions compilers/imcc/imclexer.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,6 @@ typedef int flex_int32_t;
typedef unsigned char flex_uint8_t;
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
#endif /* ! C99 */

/* Limits of integral types. */
#ifndef INT8_MIN
Expand Down Expand Up @@ -109,6 +108,8 @@ typedef unsigned int flex_uint32_t;
#define UINT32_MAX (4294967295U)
#endif

#endif /* ! C99 */

#endif /* ! FLEXINT_H */

#ifdef __cplusplus
Expand Down Expand Up @@ -182,7 +183,15 @@ typedef void* yyscan_t;

/* Size of default input buffer. */
#ifndef YY_BUF_SIZE
#ifdef __ia64__
/* On IA-64, the buffer size is 16k, not 8k.
* Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
* Ditto for the __ia64__ case accordingly.
*/
#define YY_BUF_SIZE 32768
#else
#define YY_BUF_SIZE 16384
#endif /* __ia64__ */
#endif

/* The state buf must be large enough to hold one state per character in the main buffer.
Expand Down Expand Up @@ -2217,7 +2226,7 @@ static int handle_identifier(ARGMOD(imc_info_t *imcc), YYSTYPE *valp, ARGIN(cons



#line 2221 "compilers/imcc/imclexer.c"
#line 2230 "compilers/imcc/imclexer.c"

#define INITIAL 0
#define emit 1
Expand Down Expand Up @@ -2312,10 +2321,6 @@ int yyget_lineno (yyscan_t yyscanner );

void yyset_lineno (int line_number ,yyscan_t yyscanner );

int yyget_column (yyscan_t yyscanner );

void yyset_column (int column_no ,yyscan_t yyscanner );

/* Macros after this point can all be overridden by user definitions in
* section 1.
*/
Expand Down Expand Up @@ -2356,7 +2361,12 @@ static int input (yyscan_t yyscanner );

/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#ifdef __ia64__
/* On IA-64, the buffer size is 16k, not 8k */
#define YY_READ_BUF_SIZE 16384
#else
#define YY_READ_BUF_SIZE 8192
#endif /* __ia64__ */
#endif

/* Copy whatever the last rule matched to the standard output. */
Expand All @@ -2375,7 +2385,7 @@ static int input (yyscan_t yyscanner );
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
{ \
int c = '*'; \
unsigned n; \
size_t n; \
for ( n = 0; n < max_size && \
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
buf[n] = (char) c; \
Expand Down Expand Up @@ -2480,7 +2490,7 @@ YY_DECL
return 0;
}

#line 2484 "compilers/imcc/imclexer.c"
#line 2494 "compilers/imcc/imclexer.c"

if ( !yyg->yy_init )
{
Expand Down Expand Up @@ -3666,7 +3676,7 @@ YY_RULE_SETUP
#line 708 "compilers/imcc/imcc.l"
ECHO;
YY_BREAK
#line 3670 "compilers/imcc/imclexer.c"
#line 3680 "compilers/imcc/imclexer.c"
case YY_STATE_EOF(pod):
case YY_STATE_EOF(cmt1):
case YY_STATE_EOF(cmt2):
Expand Down Expand Up @@ -4455,8 +4465,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr , yyscan_t yyscanner)

/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
* scan from a @e copy of @a bytes.
* @param bytes the byte buffer to scan
* @param len the number of bytes in the buffer pointed to by @a bytes.
* @param yybytes the byte buffer to scan
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
* @param yyscanner The scanner object.
* @return the newly allocated buffer state object.
*/
Expand Down Expand Up @@ -5523,8 +5533,8 @@ imcc_cleanup_input(ARGMOD(imc_info_t * imcc), PIOHANDLE file,
{
if (is_file)
PIO_CLOSE(imcc->interp, file);
else
Parrot_str_free_cstring(source_c);

Parrot_str_free_cstring(source_c);
}

INTVAL
Expand Down

0 comments on commit 6c82876

Please sign in to comment.