… | |
… | |
62 | #define lru_init lru_list.next = &lru_list; lru_list.prev = &lru_list /* other fields are zero */ |
62 | #define lru_init lru_list.next = &lru_list; lru_list.prev = &lru_list /* other fields are zero */ |
63 | |
63 | |
64 | /* this is primitive, yet effective */ |
64 | /* this is primitive, yet effective */ |
65 | /* the returned value must never be zero (or bad things will happen) */ |
65 | /* the returned value must never be zero (or bad things will happen) */ |
66 | #define lru_hash do { \ |
66 | #define lru_hash do { \ |
67 | hash = (((U32)dbh)>>2); \ |
67 | hash = (((U32)(long)dbh)>>2); \ |
68 | hash += *statement;\ |
68 | hash += *statement;\ |
69 | hash += len; \ |
69 | hash += len; \ |
70 | } while (0) |
70 | } while (0) |
71 | |
71 | |
72 | /* fetch and "use" */ |
72 | /* fetch and "use" */ |
… | |
… | |
337 | { |
337 | { |
338 | PUSHMARK (SP); |
338 | PUSHMARK (SP); |
339 | EXTEND (SP, bind_last - bind_first + 2); |
339 | EXTEND (SP, bind_last - bind_first + 2); |
340 | PUSHs (sth); |
340 | PUSHs (sth); |
341 | do { |
341 | do { |
|
|
342 | #if CAN_UTF8 |
|
|
343 | if (ix & 1) |
|
|
344 | SvUTF8_on (SvRV(ST(bind_first))); |
|
|
345 | #endif |
342 | PUSHs (ST(bind_first)); |
346 | PUSHs (ST(bind_first)); |
343 | bind_first++; |
347 | bind_first++; |
344 | } while (bind_first != bind_last); |
348 | } while (bind_first != bind_last); |
345 | |
349 | |
346 | PUTBACK; |
350 | PUTBACK; |