Changeset 83e15c94ca8c53994ef07cdb6c7a5ceffe67884c

Show
Ignore:
Timestamp:
06/20/2008 01:28:12 PM (2 months ago)
Author:
mitchell <mitchell@frost.(none)>
git-committer:
mitchell <mitchell@frost.(none)> 1213993692 -0400
git-parent:

[13c63d8c0d85ad5e66f522a0a79f9bb68e084c30]

git-author:
mitchell <mitchell@frost.(none)> 1213993692 -0400
Message:

Added "padding" to fix some of the memory freeing crashes as in parser.c.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ext/ohcount_native/ragel_parser.c

    r069dddc r83e15c9  
    139139/** Returns a language_breakdown for a given language name. */ 
    140140LanguageBreakdown *get_language_breakdown(char *name) { 
    141  int i; 
    142  for (i = 0; i < pr->language_breakdown_count; i++) 
    143    if (strcmp(pr->language_breakdowns[i].name, name) == 0) 
    144      return &pr->language_breakdowns[i]; // found one 
    145  
    146  language_breakdown_initialize( 
     141  int i; 
     142  for (i = 0; i < pr->language_breakdown_count; i++) 
     143    if (strcmp(pr->language_breakdowns[i].name, name) == 0) 
     144      return &pr->language_breakdowns[i]; // found one 
     145 
     146  language_breakdown_initialize( 
    147147    &pr->language_breakdowns[pr->language_breakdown_count], 
    148     name, parse_buffer_len); // create one 
    149  return &pr->language_breakdowns[pr->language_breakdown_count++]; 
     148    name, parse_buffer_len + 5); // create one 
     149  return &pr->language_breakdowns[pr->language_breakdown_count++]; 
    150150} 
    151151 
    152152/** Yields a line's language, semantic, and text to an optional Ruby block. */ 
    153153void ragel_parse_yield_line(const char *lang, const char *entity, int s, int e) { 
    154  if (rb_block_given_p()) { 
    155   VALUE ary; 
    156    ary = rb_ary_new2(2); 
    157    rb_ary_store(ary, 0, ID2SYM(rb_intern(lang))); 
    158    if (strcmp(entity, "lcode") == 0) 
     154  if (rb_block_given_p()) { 
     155    VALUE ary; 
     156    ary = rb_ary_new2(2); 
     157    rb_ary_store(ary, 0, ID2SYM(rb_intern(lang))); 
     158    if (strcmp(entity, "lcode") == 0) 
    159159      rb_ary_store(ary, 1, ID2SYM(rb_intern("code"))); 
    160160    else if (strcmp(entity, "lcomment") == 0) 
     
    163163      rb_ary_store(ary, 1, ID2SYM(rb_intern("blank"))); 
    164164    rb_ary_store(ary, 2, rb_str_new(parse_buffer + s, e - s)); 
    165    rb_yield(ary); 
    166 
     165    rb_yield(ary); 
     166 
    167167} 
    168168