On 13.05.2013 12:36, Zoltán Herczeg wrote:

> this is quite interesting. Am I see right, that your pattern only
> contains two fixed characters (backslash and space)? On a 32 bit
> Linux system, in 8 bit mode, that is 67 bytes long (56 bytes for
> header, 11 for pattern) instead of 69. That read access reads byte
> 63, which is perfect.

The pattern contains, without leading / trailing slahes:

\Q\ \E

The core pattern is one backslash and one space each.

> This is the interesting part: size = sizeof(REAL_PCRE) + (length +
> cd->names_found * cd->name_entry_size) * sizeof(pcre_uchar);
> 
> Could you print sizeof(REAL_PCRE), length, and size here?

After this line, the numbers are as follows:

  sizeof(REAL_PCRE) = 56
  length            = 13
  size              = 69

I now remember that I compiled with LINK_SIZE=3. Does this matter?

Yes, it does. If I recompile with LINK_SIZE=2 (the default), I get these
numbers:

  sizeof(REAL_PCRE) = 56
  length            = 11
  size              = 67

Does this help?

Ralf

-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to