MCPcopy Create free account
hub / github.com/MariaDB/server / strstr

Method strstr

sql/sql_string.cc:658–682  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

656
657
658int Binary_string::strstr(const char *search, uint32 search_length, uint32 offset) const
659{
660 if (search_length + offset <= str_length)
661 {
662 if (!search_length)
663 return ((int) offset); // Empty string is always found
664
665 const char *str= Ptr + offset;
666 const char *end= Ptr + str_length - search_length + 1;
667 const char *search_end= search + search_length;
668skip:
669 while (str != end)
670 {
671 if (*str++ == *search)
672 {
673 char *i= (char*) str;
674 char *j= (char*) search + 1 ;
675 while (j != search_end)
676 if (*i++ != *j++) goto skip;
677 return (int) (str-Ptr) -1;
678 }
679 }
680 }
681 return -1;
682}
683
684int Binary_string::strstr(const Binary_string &s, uint32 offset) const
685{

Callers 5

func_replaceFunction · 0.45
val_boolMethod · 0.45
val_str_internalMethod · 0.45
val_strMethod · 0.45
debug_sync_executeFunction · 0.45

Calls 2

ptrMethod · 0.45
lengthMethod · 0.45

Tested by 1

func_replaceFunction · 0.36