hash()
public
Produce a hash based on the text and options of this regular expression.
Show source
/*
* call-seq:
* rxp.hash => fixnum
*
* Produce a hash based on the text and options of this regular expression.
*/
static VALUE
rb_reg_hash(re)
VALUE re;
{
int hashval, len;
char *p;
rb_reg_check(re);
hashval = RREGEXP(re)->ptr->options;
len = RREGEXP(re)->len;
p = RREGEXP(re)->str;
while (len--) {
hashval = hashval * 33 + *p++;
}
hashval = hashval + (hashval>>5);
return INT2FIX(hashval);
}