| //===- StringEntry.cpp -----------------------------------------------------===// |
| // |
| // The MCLinker Project |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| #include <mcld/ADT/StringEntry.h> |
| |
| using namespace mcld; |
| |
| //===----------------------------------------------------------------------===// |
| // StringEntry<llvm::StringRef> |
| StringEntry<llvm::StringRef>::StringEntry() |
| { |
| } |
| |
| StringEntry<llvm::StringRef>::StringEntry(const StringEntry::key_type& pKey) |
| { |
| } |
| |
| StringEntry<llvm::StringRef>::StringEntry(const StringEntry<llvm::StringRef>& pCopy) |
| { |
| assert("Copy constructor of StringEntry should not be called!"); |
| } |
| |
| StringEntry<llvm::StringRef>::~StringEntry() |
| { |
| if (!m_Value.empty()) |
| free(const_cast<char*>(m_Value.data())); |
| } |
| |
| void StringEntry<llvm::StringRef>::setValue(llvm::StringRef& pVal) |
| { |
| char* data = (char*)malloc(pVal.size()+1); |
| strcpy(data, pVal.data()); |
| m_Value = llvm::StringRef(data, pVal.size()); |
| } |
| |
| void StringEntry<llvm::StringRef>::setValue(const char* pVal) |
| { |
| size_t length = strlen(pVal); |
| char* data = (char*)malloc(length+1); |
| strcpy(data, pVal); |
| m_Value = llvm::StringRef(data, length); |
| } |
| |