From 1dab21b236d76900f3ddd2be32f9590aef394c2d Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 2 Oct 2012 20:41:01 +0300 Subject: Remove most C casts. --- src/being.cpp | 3 +- src/configuration.cpp | 17 +++++----- src/debug/debug_new.cpp | 77 +++++++++++++++++++++++++-------------------- src/resources/emotedb.cpp | 8 ++--- src/resources/mapreader.cpp | 2 +- src/utils/xml.cpp | 14 ++++----- src/utils/xml.h | 15 ++++++++- 7 files changed, 78 insertions(+), 58 deletions(-) diff --git a/src/being.cpp b/src/being.cpp index b08e95e96..1f637ef06 100644 --- a/src/being.cpp +++ b/src/being.cpp @@ -2271,7 +2271,8 @@ void Being::recalcSpritesOrder() mSpriteHide[remSprite] = repIt->second; if (repIt->second != 1) { - if ((unsigned)remSprite != hairSlot) + if (static_cast(remSprite) + != hairSlot) { setSprite(remSprite, repIt->second, mSpriteColors[remSprite], diff --git a/src/configuration.cpp b/src/configuration.cpp index 9055642a3..3b8aa6a92 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -733,12 +733,9 @@ void ConfigurationObject::writeToXML(const XmlTextWriterPtr writer) logger->log("unused configuration option: " + i->first); } #endif - xmlTextWriterStartElement(writer, BAD_CAST "option"); - xmlTextWriterWriteAttribute(writer, - BAD_CAST "name", BAD_CAST i->first.c_str()); - - xmlTextWriterWriteAttribute(writer, - BAD_CAST "value", BAD_CAST i->second.c_str()); + XmlTextWriterStartElement(writer, "option"); + XmlTextWriterWriteAttribute(writer,"name", i->first.c_str()); + XmlTextWriterWriteAttribute(writer,"value", i->second.c_str()); xmlTextWriterEndElement(writer); } @@ -748,14 +745,14 @@ void ConfigurationObject::writeToXML(const XmlTextWriterPtr writer) { const char *const name = it->first.c_str(); - xmlTextWriterStartElement(writer, BAD_CAST "list"); - xmlTextWriterWriteAttribute(writer, BAD_CAST "name", BAD_CAST name); + XmlTextWriterStartElement(writer, "list"); + XmlTextWriterWriteAttribute(writer, "name", name); // recurse on all elements for (ConfigurationList::const_iterator elt_it = it->second.begin(), elt_it_end = it->second.end(); elt_it != elt_it_end; ++elt_it) { - xmlTextWriterStartElement(writer, BAD_CAST name); + XmlTextWriterStartElement(writer, name); if (*elt_it) (*elt_it)->writeToXML(writer); xmlTextWriterEndElement(writer); @@ -794,7 +791,7 @@ void Configuration::write() xmlTextWriterSetIndent(writer, 1); xmlTextWriterStartDocument(writer, nullptr, nullptr, nullptr); // xmlTextWriterStartDocument(writer, nullptr, "utf8", nullptr); - xmlTextWriterStartElement(writer, BAD_CAST "configuration"); + XmlTextWriterStartElement(writer, "configuration"); writeToXML(writer); diff --git a/src/debug/debug_new.cpp b/src/debug/debug_new.cpp index b64fc684b..ee4573132 100644 --- a/src/debug/debug_new.cpp +++ b/src/debug/debug_new.cpp @@ -338,12 +338,12 @@ static bool print_position_from_addr(const void* addr) #else const char ignore_err[] = ""; #endif - char* cmd = (char*)alloca(strlen(new_progname) - + exeext_len - + sizeof addr2line_cmd - 1 - + sizeof ignore_err - 1 - + sizeof(void*) * 2 - + 4 /* SP + "0x" + null */); + char* cmd = static_cast(alloca(strlen(new_progname) + + exeext_len + + sizeof addr2line_cmd - 1 + + sizeof ignore_err - 1 + + sizeof(void*) * 2 + + 4 /* SP + "0x" + null */)); strcpy(cmd, addr2line_cmd); strcpy(cmd + sizeof addr2line_cmd - 1, new_progname); size_t len = strlen(cmd); @@ -416,7 +416,7 @@ static void print_position(const void* ptr, int line) { if (line != 0) // Is file/line information present? { - fprintf(new_output_fp, "%s:%d", (const char*)ptr, line); + fprintf(new_output_fp, "%s:%d", static_cast(ptr), line); } else if (ptr != nullptr) // Is caller address present? { @@ -468,7 +468,7 @@ static void* alloc_mem(size_t size, const char* file, int line, bool is_array) Alignment_must_be_power_of_two); STATIC_ASSERT(M_DEBUG_NEW_TAILCHECK >= 0, Invalid_tail_check_length); size_t s = size + ALIGNED_LIST_ITEM_SIZE + M_DEBUG_NEW_TAILCHECK; - new_ptr_list_t* ptr = (new_ptr_list_t*)malloc(s); + new_ptr_list_t* ptr = static_cast(malloc(s)); if (ptr == nullptr) { #if M_DEBUG_NEW_STD_OPER_NEW @@ -482,7 +482,7 @@ static void* alloc_mem(size_t size, const char* file, int line, bool is_array) M_DEBUG_NEW_ERROR_ACTION; #endif } - void* pointer = (char*)ptr + ALIGNED_LIST_ITEM_SIZE; + void* pointer = reinterpret_cast(ptr) + ALIGNED_LIST_ITEM_SIZE; #if M_DEBUG_NEW_FILENAME_LEN == 0 ptr->file = file; #else @@ -493,7 +493,7 @@ static void* alloc_mem(size_t size, const char* file, int line, bool is_array) } else { - ptr->addr = (void*)file; + ptr->addr = reinterpret_cast(const_cast(file)); } #endif ptr->line = line; @@ -518,7 +518,7 @@ static void* alloc_mem(size_t size, const char* file, int line, bool is_array) fprintf(new_output_fp, "new%s: allocated %p (size %u, ", is_array ? "[]" : "", - pointer, (unsigned)size); + pointer, static_cast(size)); if (line != 0) print_position(ptr->file, ptr->line); else @@ -541,8 +541,8 @@ static void free_pointer(void* pointer, void* addr, bool is_array) { if (pointer == nullptr) return; - new_ptr_list_t* ptr = - (new_ptr_list_t*)((char*)pointer - ALIGNED_LIST_ITEM_SIZE); + new_ptr_list_t* ptr = reinterpret_cast( + static_cast(pointer) - ALIGNED_LIST_ITEM_SIZE); if (ptr->magic != MAGIC) { { @@ -567,8 +567,8 @@ static void free_pointer(void* pointer, void* addr, bool is_array) fprintf(new_output_fp, "%s: pointer %p (size %u)\n\tat ", msg, - (char*)ptr + ALIGNED_LIST_ITEM_SIZE, - (unsigned)ptr->size); + reinterpret_cast(ptr) + ALIGNED_LIST_ITEM_SIZE, + static_cast(ptr->size)); print_position(addr, 0); fprintf(new_output_fp, "\n\toriginally allocated at "); if (ptr->line != 0) @@ -598,10 +598,11 @@ static void free_pointer(void* pointer, void* addr, bool is_array) { fast_mutex_autolock lock(new_output_lock); fprintf(new_output_fp, - "delete%s: freed %p (size %u, %u bytes still allocated)\n", - is_array ? "[]" : "", - (char*)ptr + ALIGNED_LIST_ITEM_SIZE, - (unsigned)ptr->size, (unsigned)total_mem_alloc); + "delete%s: freed %p (size %u, %u bytes still allocated)\n", + is_array ? "[]" : "", + reinterpret_cast(ptr) + ALIGNED_LIST_ITEM_SIZE, + static_cast(ptr->size), + static_cast(total_mem_alloc)); } free(ptr); return; @@ -625,7 +626,8 @@ int check_leaks() while (ptr != &new_ptr_list) { - const char* const pointer = (char*)ptr + ALIGNED_LIST_ITEM_SIZE; + const char* const pointer = reinterpret_cast(ptr) + + ALIGNED_LIST_ITEM_SIZE; if (ptr->magic != MAGIC) { fprintf(new_output_fp, @@ -646,14 +648,14 @@ int check_leaks() { fprintf(new_output_fp, "Leaked object at %p (size %u, dump %u, ", - pointer, (unsigned)ptr->size, ptr->dumped); + pointer, static_cast(ptr->size), ptr->dumped); if (ptr->line != 0) print_position(ptr->file, ptr->line); else print_position(ptr->addr, ptr->line); fprintf(new_output_fp, ")\n"); ++ new_cnt; - new_size += (unsigned long)ptr->size; + new_size += static_cast(ptr->size); } if (ptr->dumped) ++ dumped_cnt; @@ -687,7 +689,8 @@ int check_mem_corruption() ptr != &new_ptr_list; ptr = ptr->next) { - const char* const pointer = (char*)ptr + ALIGNED_LIST_ITEM_SIZE; + const char* const pointer = reinterpret_cast(ptr) + + ALIGNED_LIST_ITEM_SIZE; if (ptr->magic == MAGIC #if M_DEBUG_NEW_TAILCHECK && check_tail(ptr) @@ -701,9 +704,9 @@ int check_mem_corruption() { #endif fprintf(new_output_fp, - "Heap data corrupt near %p (size %u, ", - pointer, - (unsigned)ptr->size); + "Heap data corrupt near %p (size %u, ", + pointer, + static_cast(ptr->size)); #if M_DEBUG_NEW_TAILCHECK } else @@ -730,8 +733,8 @@ void __debug_new_recorder::_M_process(void* pointer) { if (pointer == nullptr) return; - new_ptr_list_t* ptr = - (new_ptr_list_t*)((char*)pointer - ALIGNED_LIST_ITEM_SIZE); + new_ptr_list_t* ptr = reinterpret_cast( + static_cast(pointer) - ALIGNED_LIST_ITEM_SIZE); if (ptr->magic != MAGIC || ptr->line != 0) { fast_mutex_autolock lock(new_output_lock); @@ -777,23 +780,27 @@ void* operator new [](size_t size, const char* file, int line) void* operator new (size_t size) //throw(std::bad_alloc) { - return operator new (size, (char*)M_DEBUG_NEW_CALLER_ADDRESS, 0); + return operator new (size, static_cast( + M_DEBUG_NEW_CALLER_ADDRESS), 0); } void* operator new [](size_t size) //throw(std::bad_alloc) { - return operator new [](size, (char*)M_DEBUG_NEW_CALLER_ADDRESS, 0); + return operator new [](size, static_cast( + M_DEBUG_NEW_CALLER_ADDRESS), 0); } #if !defined(__BORLANDC__) || __BORLANDC__ > 0x551 void* operator new (size_t size, const std::nothrow_t&) throw() { - return alloc_mem(size, (char*)M_DEBUG_NEW_CALLER_ADDRESS, 0, false); + return alloc_mem(size, static_cast( + M_DEBUG_NEW_CALLER_ADDRESS), 0, false); } void* operator new [](size_t size, const std::nothrow_t&) throw() { - return alloc_mem(size, (char*)M_DEBUG_NEW_CALLER_ADDRESS, 0, true); + return alloc_mem(size, static_cast( + M_DEBUG_NEW_CALLER_ADDRESS), 0, true); } #endif @@ -838,12 +845,14 @@ void operator delete [](void* pointer, const char* file, int line) throw() void operator delete (void* pointer, const std::nothrow_t&) throw() { - operator delete (pointer, (char*)M_DEBUG_NEW_CALLER_ADDRESS, 0); + operator delete (pointer, static_cast( + M_DEBUG_NEW_CALLER_ADDRESS), 0); } void operator delete [](void* pointer, const std::nothrow_t&) throw() { - operator delete [](pointer, (char*)M_DEBUG_NEW_CALLER_ADDRESS, 0); + operator delete [](pointer, static_cast( + M_DEBUG_NEW_CALLER_ADDRESS), 0); } #endif // HAVE_PLACEMENT_DELETE diff --git a/src/resources/emotedb.cpp b/src/resources/emotedb.cpp index 14e3a96b5..1098243ac 100644 --- a/src/resources/emotedb.cpp +++ b/src/resources/emotedb.cpp @@ -91,8 +91,8 @@ void EmoteDB::load() { EmoteSprite *const currentSprite = new EmoteSprite; std::string file = paths.getStringValue("sprites") - + (std::string) reinterpret_cast( - spriteNode->xmlChildrenNode->content); + + std::string(reinterpret_cast( + spriteNode->xmlChildrenNode->content)); currentSprite->sprite = AnimatedSprite::load(file, XML::getProperty(spriteNode, "variant", 0)); currentSprite->name = XML::langProperty( @@ -147,8 +147,8 @@ void EmoteDB::load() { EmoteSprite *const currentSprite = new EmoteSprite; std::string file = paths.getStringValue("sprites") - + (std::string) reinterpret_cast( - spriteNode->xmlChildrenNode->content); + + std::string(reinterpret_cast( + spriteNode->xmlChildrenNode->content)); currentSprite->sprite = AnimatedSprite::load(file, XML::getProperty(spriteNode, "variant", 0)); currentSprite->name = XML::langProperty( diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp index ede630d0c..51d762569 100644 --- a/src/resources/mapreader.cpp +++ b/src/resources/mapreader.cpp @@ -705,7 +705,7 @@ Tileset *MapReader::readTileset(XmlNodePtr node, const std::string &path, std::string pathDir(path); std::map props; - if (xmlHasProp(node, BAD_CAST "source")) + if (XmlHasProp(node, "source")) { std::string filename = XML::getProperty(node, "source", ""); filename = resolveRelativePath(path, filename); diff --git a/src/utils/xml.cpp b/src/utils/xml.cpp index f25d867a6..73418cc60 100644 --- a/src/utils/xml.cpp +++ b/src/utils/xml.cpp @@ -110,7 +110,7 @@ namespace XML { int &ret = def; - xmlChar *const prop = xmlGetProp(node, BAD_CAST name); + xmlChar *const prop = XmlGetProp(node, name); if (prop) { ret = atoi(reinterpret_cast(prop)); @@ -125,7 +125,7 @@ namespace XML { int &ret = def; - xmlChar *const prop = xmlGetProp(node, BAD_CAST name); + xmlChar *const prop = XmlGetProp(node, name); if (prop) { ret = atoi(reinterpret_cast(prop)); @@ -143,7 +143,7 @@ namespace XML { double &ret = def; - xmlChar *const prop = xmlGetProp(node, BAD_CAST name); + xmlChar *const prop = XmlGetProp(node, name); if (prop) { ret = atof(reinterpret_cast(prop)); @@ -156,7 +156,7 @@ namespace XML std::string getProperty(const XmlNodePtr node, const char *const name, const std::string &def) { - xmlChar *const prop = xmlGetProp(node, BAD_CAST name); + xmlChar *const prop = XmlGetProp(node, name); if (prop) { std::string val = reinterpret_cast(prop); @@ -180,11 +180,11 @@ namespace XML bool getBoolProperty(const XmlNodePtr node, const char *const name, const bool def) { - const xmlChar *const prop = xmlGetProp(node, BAD_CAST name); + const xmlChar *const prop = XmlGetProp(node, name); - if (xmlStrEqual(prop, BAD_CAST "true" )) + if (XmlStrEqual(prop, "true")) return true; - if (xmlStrEqual(prop, BAD_CAST "false")) + if (XmlStrEqual(prop, "false")) return false; return def; } diff --git a/src/utils/xml.h b/src/utils/xml.h index e72d72070..ad54f4b28 100644 --- a/src/utils/xml.h +++ b/src/utils/xml.h @@ -32,9 +32,22 @@ #include "localconsts.h" #define XmlNodePtr xmlNodePtr -#define xmlNameEqual(node, str) xmlStrEqual((node)->name, BAD_CAST (str)) +#define XmlStrEqual(str1, str2) xmlStrEqual(str1, \ + reinterpret_cast(str2)) +#define xmlNameEqual(node, str) xmlStrEqual((node)->name, \ + reinterpret_cast(str)) #define XmlTextWriterPtr xmlTextWriterPtr #define xmlTypeEqual(node, typ) ((node)->type == (typ)) +#define XmlHasProp(node, name) xmlHasProp(node, \ + reinterpret_cast(name)) +#define XmlGetProp(node, name) xmlGetProp(node, \ + reinterpret_cast(name)) +#define XmlTextWriterStartElement(writer, name) \ + xmlTextWriterStartElement(writer, reinterpret_cast(name)) +#define XmlTextWriterWriteAttribute(writer, name, content) \ + xmlTextWriterWriteAttribute(writer, \ + reinterpret_cast(name), \ + reinterpret_cast(content)) /** * XML helper functions. -- cgit v1.2.3-60-g2f50