Changeset 2732


Ignore:
Timestamp:
Jun 16, 2013, 2:21:27 PM (8 years ago)
Author:
sam
Message:

base: fix PS3 build and use C library functions in string.h when possible.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lol/base/string.h

    r2731 r2732  
    120120    int IndexOf(const char token) const
    121121    {
    122         for (int i = 0; i < Count(); ++i)
    123         {
    124             if ((*this)[i] == token)
    125                 return i;
    126         }
    127         return -1;
     122        using namespace std;
     123
     124        char *tmp = strchr(C(), token);
     125        return tmp ? (int)(intptr_t)(tmp - C()) : -1;
    128126    }
    129127
    130128    int IndexOf(const char* token) const
    131129    {
    132         int token_len = strlen(token);
    133         if (Count() < token_len)
    134             return -1;
    135 
    136         for (int i = 0; i < Count() - token_len + 1; ++i)
    137         {
    138             int j = 0;
    139             for (; j < token_len; ++j)
    140             {
    141                 if ((*this)[i + j] != token[j])
    142                     break;
    143             }
    144             if (j == token_len)
    145                 return i;
    146         }
    147         return -1;
     130        using namespace std;
     131
     132        char *tmp = strstr(C(), token);
     133        return tmp ? (int)(intptr_t)(tmp - C()) : -1;
    148134    }
    149135
    150136    int LastIndexOf(const char token) const
    151137    {
    152         for (int i = Count() - 1; i >= 0; --i)
    153         {
    154             if ((*this)[i] == token)
    155                 return i;
    156         }
    157         return -1;
     138        using namespace std;
     139
     140        char *tmp = strrchr(C(), token);
     141        return tmp ? (int)(intptr_t)(tmp - C()) : -1;
    158142    }
    159143
    160144    int LastIndexOf(const char* token) const
    161145    {
     146        using namespace std;
     147
    162148        int token_len = strlen(token);
    163149        if (Count() < token_len)
Note: See TracChangeset for help on using the changeset viewer.