コード例 #1
0
ファイル: symboltable.cpp プロジェクト: angelim/rubinius
  size_t SymbolTable::add(std::string str) {
    bytes_used_ += (str.size() + sizeof(str));

    strings.push_back(str);
    kinds.push_back(detect_kind(str.c_str(), str.size()));
    return strings.size() - 1;
  }
コード例 #2
0
ファイル: symbol_table.cpp プロジェクト: Azzurrio/rubinius
  size_t SymbolTable::add(std::string str, int enc) {
    bytes_used_ += (str.size() + sizeof(std::string) + sizeof(int) + sizeof(Kind));

    strings.push_back(str);
    encodings.push_back(enc);
    kinds.push_back(detect_kind(str.data(), str.size()));
    return strings.size() - 1;
  }
コード例 #3
0
ファイル: symbol_table.cpp プロジェクト: JesseChavez/rubinius
  SymbolTable::Kind SymbolTable::kind(STATE, const Symbol* sym) {
    utilities::thread::SpinLock::LockGuard guard(lock_);

    Kind k = kinds[sym->index()];

    if(k == eUnknown) {
      k = kinds[sym->index()] = detect_kind(state, sym);
    }

    return k;
  }
コード例 #4
0
ファイル: symboltable.cpp プロジェクト: soaexpert/rubinius
 size_t SymbolTable::add(std::string str) {
   strings.push_back(str);
   kinds.push_back(detect_kind(str.c_str(), str.size()));
   return strings.size() - 1;
 }