ezmobius / bmhsearch Goto Github PK
View Code? Open in Web Editor NEWFast string searcher, useful for multi-part post parsing
License: Other
Fast string searcher, useful for multi-part post parsing
License: Other
The following test case seems to fail -- specifically, the invocation of has_trailing? seems to incorrectly report false:
s = Mongrel::BMHSearch.new('--X', 512)
s.find('--X') # No trailing
s.find('B--') # Trailing; works correctly
s.find('X--') # Trailing
raise 'fail' unless (s.has_trailing?) # Fails
The correctness of s.has_trailing? makes buffer management in the caller much simpler and/or more efficient in some cases.
Commenting out the following line in ext/bmh_search/bmh_search.c (around line 199) and ending brace:
// don't bother if the string ends in the needle completely
if(S->nfound == 0 || last != hlen - S->nlen) {
...
}
...seems to fix the problem for this test case, and all of the ones in the application I'm currently working on. I haven't had a chance to run the fuzzers/tests that come up on pastie.org yet, but I plan to.
Dave
(who is writing stream-based multipart mime handling code, and happened to run in to this...)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.