diff options
| author | Lioncash <mathew1800@gmail.com> | 2014-08-17 23:03:22 -0400 | 
|---|---|---|
| committer | Lioncash <mathew1800@gmail.com> | 2014-08-17 23:12:20 -0400 | 
| commit | 98fa3f7cba22997aef8ec4d121584c2488389c38 (patch) | |
| tree | 40585fc835fa8fc27882923a4439d88e7ae171de | |
| parent | 68c81f28d947193d050cb04bbcfd42b6ef1307f3 (diff) | |
Core: Alter the kernel string functions to use std::string instead of const char*.
Most functions already operate on std::strings. This also removes the need to manually null terminate thread names.
| -rw-r--r-- | src/core/hle/kernel/address_arbiter.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/kernel/archive.cpp | 6 | ||||
| -rw-r--r-- | src/core/hle/kernel/event.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/kernel/kernel.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/kernel/kernel.h | 6 | ||||
| -rw-r--r-- | src/core/hle/kernel/mutex.cpp | 4 | ||||
| -rw-r--r-- | src/core/hle/kernel/shared_memory.cpp | 2 | ||||
| -rw-r--r-- | src/core/hle/kernel/thread.cpp | 17 | ||||
| -rw-r--r-- | src/core/hle/service/apt.h | 2 | ||||
| -rw-r--r-- | src/core/hle/service/fs.h | 2 | ||||
| -rw-r--r-- | src/core/hle/service/gsp.h | 2 | ||||
| -rw-r--r-- | src/core/hle/service/hid.h | 2 | ||||
| -rw-r--r-- | src/core/hle/service/ndm.h | 2 | ||||
| -rw-r--r-- | src/core/hle/service/service.h | 10 | ||||
| -rw-r--r-- | src/core/hle/service/srv.h | 2 | ||||
| -rw-r--r-- | src/core/hle/svc.cpp | 10 | 
16 files changed, 38 insertions, 41 deletions
| diff --git a/src/core/hle/kernel/address_arbiter.cpp b/src/core/hle/kernel/address_arbiter.cpp index bdf76e0c2..174d4cd6e 100644 --- a/src/core/hle/kernel/address_arbiter.cpp +++ b/src/core/hle/kernel/address_arbiter.cpp @@ -17,8 +17,8 @@ namespace Kernel {  class AddressArbiter : public Object {  public: -    const char* GetTypeName() const { return "Arbiter"; } -    const char* GetName() const { return name.c_str(); } +    std::string GetTypeName() const { return "Arbiter"; } +    std::string GetName() const { return name; }      static Kernel::HandleType GetStaticHandleType() { return HandleType::AddressArbiter; }      Kernel::HandleType GetHandleType() const { return HandleType::AddressArbiter; } diff --git a/src/core/hle/kernel/archive.cpp b/src/core/hle/kernel/archive.cpp index 76b2520da..5079fcb84 100644 --- a/src/core/hle/kernel/archive.cpp +++ b/src/core/hle/kernel/archive.cpp @@ -31,8 +31,8 @@ enum class FileCommand : u32 {  class Archive : public Object {  public: -    const char* GetTypeName() const { return "Archive"; } -    const char* GetName() const { return name.c_str(); } +    std::string GetTypeName() const { return "Archive"; } +    std::string GetName() const { return name; }      static Kernel::HandleType GetStaticHandleType() { return HandleType::Archive; }      Kernel::HandleType GetHandleType() const { return HandleType::Archive; } @@ -110,7 +110,7 @@ Result MountArchive(Archive* archive) {          return -1;      }      g_archive_map[id_code] = archive->GetHandle(); -    INFO_LOG(KERNEL, "Mounted archive %s", archive->GetName()); +    INFO_LOG(KERNEL, "Mounted archive %s", archive->GetName().c_str());      return 0;  } diff --git a/src/core/hle/kernel/event.cpp b/src/core/hle/kernel/event.cpp index 1e417e09c..64f6a9649 100644 --- a/src/core/hle/kernel/event.cpp +++ b/src/core/hle/kernel/event.cpp @@ -16,8 +16,8 @@ namespace Kernel {  class Event : public Object {  public: -    const char* GetTypeName() const { return "Event"; } -    const char* GetName() const { return name.c_str(); } +    std::string GetTypeName() const { return "Event"; } +    std::string GetName() const { return name; }      static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Event; }      Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Event; } diff --git a/src/core/hle/kernel/kernel.cpp b/src/core/hle/kernel/kernel.cpp index 7d9bd261e..96bc63a53 100644 --- a/src/core/hle/kernel/kernel.cpp +++ b/src/core/hle/kernel/kernel.cpp @@ -71,8 +71,8 @@ void ObjectPool::List() {      for (int i = 0; i < MAX_COUNT; i++) {          if (occupied[i]) {              if (pool[i]) { -                INFO_LOG(KERNEL, "KO %i: %s \"%s\"", i + HANDLE_OFFSET, pool[i]->GetTypeName(),  -                    pool[i]->GetName()); +                INFO_LOG(KERNEL, "KO %i: %s \"%s\"", i + HANDLE_OFFSET, pool[i]->GetTypeName().c_str(),  +                    pool[i]->GetName().c_str());              }          }      } diff --git a/src/core/hle/kernel/kernel.h b/src/core/hle/kernel/kernel.h index d9afcdd25..6a2e395ed 100644 --- a/src/core/hle/kernel/kernel.h +++ b/src/core/hle/kernel/kernel.h @@ -4,6 +4,7 @@  #pragma once +#include <string>  #include "common/common.h"  typedef u32 Handle; @@ -33,7 +34,6 @@ enum class HandleType : u32 {  };  enum { -    MAX_NAME_LENGTH     = 0x100,      DEFAULT_STACK_SIZE  = 0x4000,  }; @@ -45,8 +45,8 @@ class Object : NonCopyable {  public:      virtual ~Object() {}      Handle GetHandle() const { return handle; } -    virtual const char* GetTypeName() const { return "[BAD KERNEL OBJECT TYPE]"; } -    virtual const char* GetName() const { return "[UNKNOWN KERNEL OBJECT]"; } +    virtual std::string GetTypeName() const { return "[BAD KERNEL OBJECT TYPE]"; } +    virtual std::string GetName() const { return "[UNKNOWN KERNEL OBJECT]"; }      virtual Kernel::HandleType GetHandleType() const = 0;      /** diff --git a/src/core/hle/kernel/mutex.cpp b/src/core/hle/kernel/mutex.cpp index 055f503f9..5d7d65dd9 100644 --- a/src/core/hle/kernel/mutex.cpp +++ b/src/core/hle/kernel/mutex.cpp @@ -15,8 +15,8 @@ namespace Kernel {  class Mutex : public Object {  public: -    const char* GetTypeName() const { return "Mutex"; } -    const char* GetName() const { return name.c_str(); } +    std::string GetTypeName() const { return "Mutex"; } +    std::string GetName() const { return name; }      static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Mutex; }      Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Mutex; } diff --git a/src/core/hle/kernel/shared_memory.cpp b/src/core/hle/kernel/shared_memory.cpp index 52823048f..2a6a483a1 100644 --- a/src/core/hle/kernel/shared_memory.cpp +++ b/src/core/hle/kernel/shared_memory.cpp @@ -11,7 +11,7 @@ namespace Kernel {  class SharedMemory : public Object {  public: -    const char* GetTypeName() const { return "SharedMemory"; } +    std::string GetTypeName() const { return "SharedMemory"; }      static Kernel::HandleType GetStaticHandleType() {  return Kernel::HandleType::SharedMemory; }      Kernel::HandleType GetHandleType() const { return Kernel::HandleType::SharedMemory; } diff --git a/src/core/hle/kernel/thread.cpp b/src/core/hle/kernel/thread.cpp index 1d7ded6f6..554ec9756 100644 --- a/src/core/hle/kernel/thread.cpp +++ b/src/core/hle/kernel/thread.cpp @@ -2,13 +2,12 @@  // Licensed under GPLv2  // Refer to the license.txt file included.   -#include <stdio.h> - -#include <list>  #include <algorithm> -#include <vector> +#include <cstdio> +#include <list>  #include <map>  #include <string> +#include <vector>  #include "common/common.h"  #include "common/thread_queue_list.h" @@ -25,8 +24,8 @@ namespace Kernel {  class Thread : public Kernel::Object {  public: -    const char* GetName() const { return name; } -    const char* GetTypeName() const { return "Thread"; } +    std::string GetName() const { return name; } +    std::string GetTypeName() const { return "Thread"; }      static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Thread; }      Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Thread; } @@ -71,7 +70,7 @@ public:      std::vector<Handle> waiting_threads; -    char name[Kernel::MAX_NAME_LENGTH + 1]; +    std::string name;  };  // Lists all thread ids that aren't deleted/etc. @@ -336,9 +335,7 @@ Thread* CreateThread(Handle& handle, const char* name, u32 entry_point, s32 prio      thread->processor_id = processor_id;      thread->wait_type = WAITTYPE_NONE;      thread->wait_handle = 0; - -    strncpy(thread->name, name, Kernel::MAX_NAME_LENGTH); -    thread->name[Kernel::MAX_NAME_LENGTH] = '\0'; +    thread->name = name;      return thread;  } diff --git a/src/core/hle/service/apt.h b/src/core/hle/service/apt.h index dca3097ed..4c7dd07e7 100644 --- a/src/core/hle/service/apt.h +++ b/src/core/hle/service/apt.h @@ -29,7 +29,7 @@ public:       * Gets the string port name used by CTROS for the service       * @return Port name of service       */ -    const char *GetPortName() const { +    std::string GetPortName() const {          return "APT:U";      }  }; diff --git a/src/core/hle/service/fs.h b/src/core/hle/service/fs.h index fabf5ac7e..36f3697d3 100644 --- a/src/core/hle/service/fs.h +++ b/src/core/hle/service/fs.h @@ -23,7 +23,7 @@ public:       * Gets the string port name used by CTROS for the service       * @return Port name of service       */ -    const char *GetPortName() const { +    std::string GetPortName() const {          return "fs:USER";      }  }; diff --git a/src/core/hle/service/gsp.h b/src/core/hle/service/gsp.h index fccebef7e..b25dbb7bc 100644 --- a/src/core/hle/service/gsp.h +++ b/src/core/hle/service/gsp.h @@ -137,7 +137,7 @@ public:       * Gets the string port name used by CTROS for the service       * @return Port name of service       */ -    const char *GetPortName() const { +    std::string GetPortName() const {          return "gsp::Gpu";      } diff --git a/src/core/hle/service/hid.h b/src/core/hle/service/hid.h index 81c29eb2e..b17fcfa86 100644 --- a/src/core/hle/service/hid.h +++ b/src/core/hle/service/hid.h @@ -25,7 +25,7 @@ public:       * Gets the string port name used by CTROS for the service       * @return Port name of service       */ -    const char *GetPortName() const { +    std::string GetPortName() const {          return "hid:USER";      } diff --git a/src/core/hle/service/ndm.h b/src/core/hle/service/ndm.h index fbe88fb8f..d5ec28f5b 100644 --- a/src/core/hle/service/ndm.h +++ b/src/core/hle/service/ndm.h @@ -24,7 +24,7 @@ public:       * Gets the string port name used by CTROS for the service       * @return Port name of service       */ -    const char *GetPortName() const { +    std::string GetPortName() const {          return "ndm:u";      } diff --git a/src/core/hle/service/service.h b/src/core/hle/service/service.h index dcd525727..cb1ecde31 100644 --- a/src/core/hle/service/service.h +++ b/src/core/hle/service/service.h @@ -39,8 +39,8 @@ class Interface  : public Kernel::Object {      friend class Manager;  public: -    const char *GetName() const { return GetPortName(); } -    const char *GetTypeName() const { return GetPortName(); } +    std::string GetName() const { return GetPortName(); } +    std::string GetTypeName() const { return GetPortName(); }      static Kernel::HandleType GetStaticHandleType() { return Kernel::HandleType::Service; }      Kernel::HandleType GetHandleType() const { return Kernel::HandleType::Service; } @@ -57,7 +57,7 @@ public:       * Gets the string name used by CTROS for a service       * @return Port name of service       */ -    virtual const char *GetPortName() const { +    virtual std::string GetPortName() const {          return "[UNKNOWN SERVICE PORT]";      } @@ -86,7 +86,7 @@ public:          if (itr == m_functions.end()) {              ERROR_LOG(OSHLE, "unknown/unimplemented function: port=%s, command=0x%08X",  -                GetPortName(), cmd_buff[0]); +                GetPortName().c_str(), cmd_buff[0]);              // TODO(bunnei): Hack - ignore error              u32* cmd_buff = Service::GetCommandBuffer(); @@ -95,7 +95,7 @@ public:          }          if (itr->second.func == nullptr) {              ERROR_LOG(OSHLE, "unimplemented function: port=%s, name=%s",  -                GetPortName(), itr->second.name.c_str()); +                GetPortName().c_str(), itr->second.name.c_str());              // TODO(bunnei): Hack - ignore error              u32* cmd_buff = Service::GetCommandBuffer(); diff --git a/src/core/hle/service/srv.h b/src/core/hle/service/srv.h index 81109a2a8..9451472de 100644 --- a/src/core/hle/service/srv.h +++ b/src/core/hle/service/srv.h @@ -22,7 +22,7 @@ public:       * Gets the string name used by CTROS for the service       * @return Port name of service       */ -    const char *GetPortName() const { +    std::string GetPortName() const {          return "srv:";      } diff --git a/src/core/hle/svc.cpp b/src/core/hle/svc.cpp index 8720bed31..28f2844eb 100644 --- a/src/core/hle/svc.cpp +++ b/src/core/hle/svc.cpp @@ -92,7 +92,7 @@ Result SendSyncRequest(Handle handle) {      Kernel::Object* object = Kernel::g_object_pool.GetFast<Kernel::Object>(handle);      _assert_msg_(KERNEL, (object != nullptr), "called, but kernel object is nullptr!"); -    DEBUG_LOG(SVC, "called handle=0x%08X(%s)", handle, object->GetTypeName()); +    DEBUG_LOG(SVC, "called handle=0x%08X(%s)", handle, object->GetTypeName().c_str());      bool wait = false;      Result res = object->SyncRequest(&wait); @@ -118,8 +118,8 @@ Result WaitSynchronization1(Handle handle, s64 nano_seconds) {      Kernel::Object* object = Kernel::g_object_pool.GetFast<Kernel::Object>(handle); -    DEBUG_LOG(SVC, "called handle=0x%08X(%s:%s), nanoseconds=%d", handle, object->GetTypeName(),  -            object->GetName(), nano_seconds); +    DEBUG_LOG(SVC, "called handle=0x%08X(%s:%s), nanoseconds=%d", handle, object->GetTypeName().c_str(),  +            object->GetName().c_str(), nano_seconds);      _assert_msg_(KERNEL, (object != nullptr), "called, but kernel object is nullptr!"); @@ -152,8 +152,8 @@ Result WaitSynchronizationN(s32* out, Handle* handles, s32 handle_count, bool wa          _assert_msg_(KERNEL, (object != nullptr), "called handle=0x%08X, but kernel object "              "is nullptr!", handles[i]); -        DEBUG_LOG(SVC, "\thandle[%d] = 0x%08X(%s:%s)", i, handles[i], object->GetTypeName(),  -            object->GetName()); +        DEBUG_LOG(SVC, "\thandle[%d] = 0x%08X(%s:%s)", i, handles[i], object->GetTypeName().c_str(),  +            object->GetName().c_str());          Result res = object->WaitSynchronization(&wait); | 
