summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKUDr <KUDr@openttd.org>2007-01-11 17:29:39 +0000
committerKUDr <KUDr@openttd.org>2007-01-11 17:29:39 +0000
commit28e969924b9033f5132fe2ba223e2bcadd39a7ec (patch)
treed644a3831ca0947198b191fa3e4e8973d3a9786e
parent5675956443d4e58713a0abd8cedb4eaaaccf22d4 (diff)
downloadopenttd-28e969924b9033f5132fe2ba223e2bcadd39a7ec.tar.xz
(svn r8066) - Codechange: MallocT(), CallocT(), ReallocT() now return the pointer to allocated memory instead of modifying the pointer given as parameter
-rw-r--r--src/ai/ai.cpp4
-rw-r--r--src/ai/default/default.cpp3
-rw-r--r--src/airport.cpp24
-rw-r--r--src/aystar.cpp6
-rw-r--r--src/bmp.cpp2
-rw-r--r--src/console.cpp11
-rw-r--r--src/fios.cpp8
-rw-r--r--src/fontcache.cpp10
-rw-r--r--src/graph_gui.cpp2
-rw-r--r--src/heightmap.cpp4
-rw-r--r--src/helpers.hpp18
-rw-r--r--src/industry_gui.cpp2
-rw-r--r--src/map.cpp2
-rw-r--r--src/network/core/packet.cpp3
-rw-r--r--src/network/core/tcp.cpp2
-rw-r--r--src/network/core/udp.cpp4
-rw-r--r--src/network/network_client.cpp3
-rw-r--r--src/network/network_data.cpp6
-rw-r--r--src/network/network_gamelist.cpp2
-rw-r--r--src/network/network_gui.cpp2
-rw-r--r--src/network/network_server.cpp3
-rw-r--r--src/newgrf.cpp42
-rw-r--r--src/newgrf_config.cpp12
-rw-r--r--src/newgrf_engine.cpp4
-rw-r--r--src/newgrf_gui.cpp4
-rw-r--r--src/newgrf_station.cpp10
-rw-r--r--src/newgrf_text.cpp5
-rw-r--r--src/oldpool.cpp4
-rw-r--r--src/openttd.cpp2
-rw-r--r--src/queue.cpp31
-rw-r--r--src/screenshot.cpp9
-rw-r--r--src/settings.cpp5
-rw-r--r--src/settings_gui.cpp2
-rw-r--r--src/sound.cpp6
-rw-r--r--src/sound/win32_s.cpp2
-rw-r--r--src/spritecache.cpp2
-rw-r--r--src/station_cmd.cpp2
-rw-r--r--src/station_gui.cpp5
-rw-r--r--src/strgen/strgen.cpp8
-rw-r--r--src/string.cpp3
-rw-r--r--src/strings.cpp2
-rw-r--r--src/tgp.cpp6
-rw-r--r--src/thread.cpp9
-rw-r--r--src/town_gui.cpp2
-rw-r--r--src/unix.cpp8
-rw-r--r--src/vehicle.cpp6
-rw-r--r--src/vehicle_gui.cpp6
-rw-r--r--src/win32.cpp2
-rw-r--r--src/window.cpp2
49 files changed, 141 insertions, 181 deletions
diff --git a/src/ai/ai.cpp b/src/ai/ai.cpp
index 5b2e5a8fc..3921fd873 100644
--- a/src/ai/ai.cpp
+++ b/src/ai/ai.cpp
@@ -51,11 +51,11 @@ static void AI_PutCommandInQueue(PlayerID player, TileIndex tile, uint32 p1, uin
if (_ai_player[player].queue_tail == NULL) {
/* There is no item in the queue yet, create the queue */
- MallocT(&_ai_player[player].queue, 1);
+ _ai_player[player].queue = MallocT<AICommand>(1);
_ai_player[player].queue_tail = _ai_player[player].queue;
} else {
/* Add an item at the end */
- MallocT(&_ai_player[player].queue_tail->next, 1);
+ _ai_player[player].queue_tail->next = MallocT<AICommand>(1);
_ai_player[player].queue_tail = _ai_player[player].queue_tail->next;
}
diff --git a/src/ai/default/default.cpp b/src/ai/default/default.cpp
index fff5cef8a..09e2f68a4 100644
--- a/src/ai/default/default.cpp
+++ b/src/ai/default/default.cpp
@@ -3575,7 +3575,6 @@ return_to_loop:;
static void AiStateRemoveStation(Player *p)
{
// Remove stations that aren't in use by any vehicle
- byte *in_use;
const Order *ord;
const Station *st;
TileIndex tile;
@@ -3584,7 +3583,7 @@ static void AiStateRemoveStation(Player *p)
p->ai.state = AIS_1;
// Get a list of all stations that are in use by a vehicle
- MallocT(&in_use, GetMaxStationIndex() + 1);
+ byte *in_use = MallocT<byte>(GetMaxStationIndex() + 1);
memset(in_use, 0, GetMaxStationIndex() + 1);
FOR_ALL_ORDERS(ord) {
if (ord->type == OT_GOTO_STATION) in_use[ord->dest] = 1;
diff --git a/src/airport.cpp b/src/airport.cpp
index 60df231bb..0c1370a72 100644
--- a/src/airport.cpp
+++ b/src/airport.cpp
@@ -50,7 +50,7 @@ static void AirportPrintOut(const AirportFTAClass *apc, bool full_report);
void InitializeAirports(void)
{
// country airport
- MallocT(&CountryAirport, 1);
+ CountryAirport = MallocT<AirportFTAClass>(1);
AirportFTAClass_Constructor(
CountryAirport,
@@ -65,7 +65,7 @@ void InitializeAirports(void)
);
// city airport
- MallocT(&CityAirport, 1);
+ CityAirport = MallocT<AirportFTAClass>(1);
AirportFTAClass_Constructor(
CityAirport,
@@ -80,7 +80,7 @@ void InitializeAirports(void)
);
// metropolitan airport
- MallocT(&MetropolitanAirport, 1);
+ MetropolitanAirport = MallocT<AirportFTAClass>(1);
AirportFTAClass_Constructor(
MetropolitanAirport,
@@ -95,7 +95,7 @@ void InitializeAirports(void)
);
// international airport
- MallocT(&InternationalAirport, 1);
+ InternationalAirport = MallocT<AirportFTAClass>(1);
AirportFTAClass_Constructor(
InternationalAirport,
@@ -110,7 +110,7 @@ void InitializeAirports(void)
);
// intercontintental airport
- MallocT(&IntercontinentalAirport, 1);
+ IntercontinentalAirport = MallocT<AirportFTAClass>(1);
AirportFTAClass_Constructor(
IntercontinentalAirport,
@@ -125,7 +125,7 @@ void InitializeAirports(void)
);
// heliport, oilrig
- MallocT(&Heliport, 1);
+ Heliport = MallocT<AirportFTAClass>(1);
AirportFTAClass_Constructor(
Heliport,
@@ -142,7 +142,7 @@ void InitializeAirports(void)
Oilrig = Heliport; // exactly the same structure for heliport/oilrig, so share state machine
// commuter airport
- MallocT(&CommuterAirport, 1);
+ CommuterAirport = MallocT<AirportFTAClass>(1);
AirportFTAClass_Constructor(
CommuterAirport,
@@ -157,7 +157,7 @@ void InitializeAirports(void)
);
// helidepot airport
- MallocT(&HeliDepot, 1);
+ HeliDepot = MallocT<AirportFTAClass>(1);
AirportFTAClass_Constructor(
HeliDepot,
@@ -172,7 +172,7 @@ void InitializeAirports(void)
);
// helistation airport
- MallocT(&HeliStation, 1);
+ HeliStation = MallocT<AirportFTAClass>(1);
AirportFTAClass_Constructor(
HeliStation,
@@ -324,8 +324,7 @@ static byte AirportGetTerminalCount(const byte *terminals, byte *groups)
static void AirportBuildAutomata(AirportFTAClass *apc, const AirportFTAbuildup *apFA)
{
AirportFTA *current;
- AirportFTA *FAutomata;
- MallocT(&FAutomata, apc->nofelements);
+ AirportFTA *FAutomata = MallocT<AirportFTA>(apc->nofelements);
uint16 internalcounter = 0;
uint16 i;
@@ -339,8 +338,7 @@ static void AirportBuildAutomata(AirportFTAClass *apc, const AirportFTAbuildup *
// outgoing nodes from the same position, create linked list
while (current->position == apFA[internalcounter + 1].position) {
- AirportFTA *newNode;
- MallocT(&newNode, 1);
+ AirportFTA *newNode = MallocT<AirportFTA>(1);
newNode->position = apFA[internalcounter + 1].position;
newNode->heading = apFA[internalcounter + 1].heading;
diff --git a/src/aystar.cpp b/src/aystar.cpp
index 36260d4f3..8c7e60851 100644
--- a/src/aystar.cpp
+++ b/src/aystar.cpp
@@ -36,8 +36,7 @@ static PathNode* AyStarMain_ClosedList_IsInList(AyStar *aystar, const AyStarNode
static void AyStarMain_ClosedList_Add(AyStar *aystar, const PathNode *node)
{
// Add a node to the ClosedList
- PathNode *new_node;
- MallocT(&new_node, 1);
+ PathNode *new_node = MallocT<PathNode>(1);
*new_node = *node;
Hash_Set(&aystar->ClosedListHash, node->node.tile, node->node.direction, new_node);
}
@@ -68,8 +67,7 @@ static OpenListNode *AyStarMain_OpenList_Pop(AyStar *aystar)
static void AyStarMain_OpenList_Add(AyStar *aystar, PathNode *parent, const AyStarNode *node, int f, int g)
{
// Add a new Node to the OpenList
- OpenListNode *new_node;
- MallocT(&new_node, 1);
+ OpenListNode *new_node = MallocT<OpenListNode>(1);
new_node->g = g;
new_node->path.parent = parent;
new_node->path.node = *node;
diff --git a/src/bmp.cpp b/src/bmp.cpp
index e9a882021..381d95014 100644
--- a/src/bmp.cpp
+++ b/src/bmp.cpp
@@ -329,7 +329,7 @@ bool BmpReadHeader(BmpBuffer *buffer, BmpInfo *info, BmpData *data)
}
if (info->palette_size == 0) info->palette_size = 1 << info->bpp;
- CallocT(&data->palette, info->palette_size);
+ data->palette = CallocT<Colour>(info->palette_size);
if (data->palette == NULL) return false;
for (i = 0; i < info->palette_size; i++) {
diff --git a/src/console.cpp b/src/console.cpp
index cf192fb33..4cb6e8af7 100644
--- a/src/console.cpp
+++ b/src/console.cpp
@@ -224,7 +224,7 @@ void IConsoleInit(void)
memset(_iconsole_history, 0, sizeof(_iconsole_history));
memset(_iconsole_buffer, 0, sizeof(_iconsole_buffer));
memset(_iconsole_cbuffer, 0, sizeof(_iconsole_cbuffer));
- CallocT(&_iconsole_cmdline.buf, ICON_CMDLN_SIZE); // create buffer and zero it
+ _iconsole_cmdline.buf = CallocT<char>(ICON_CMDLN_SIZE); // create buffer and zero it
_iconsole_cmdline.maxlength = ICON_CMDLN_SIZE;
IConsolePrintF(13, "OpenTTD Game Console Revision 7 - %s", _openttd_revision);
@@ -613,8 +613,7 @@ void IConsoleVarHookAdd(const char *name, IConsoleHookTypes type, IConsoleHook *
void IConsoleCmdRegister(const char *name, IConsoleCmdProc *proc)
{
char *new_cmd = strdup(name);
- IConsoleCmd *item_new;
- MallocT(&item_new, 1);
+ IConsoleCmd *item_new = MallocT<IConsoleCmd>(1);
item_new->next = NULL;
item_new->proc = proc;
@@ -651,8 +650,7 @@ void IConsoleAliasRegister(const char *name, const char *cmd)
{
char *new_alias = strdup(name);
char *cmd_aliased = strdup(cmd);
- IConsoleAlias *item_new;
- MallocT(&item_new, 1);
+ IConsoleAlias *item_new = MallocT<IConsoleAlias>(1);
item_new->next = NULL;
item_new->cmdline = cmd_aliased;
@@ -787,8 +785,7 @@ void IConsoleVarStringRegister(const char *name, void *addr, uint32 size, const
void IConsoleVarRegister(const char *name, void *addr, IConsoleVarTypes type, const char *help)
{
char *new_cmd = strdup(name);
- IConsoleVar *item_new;
- MallocT(&item_new, 1);
+ IConsoleVar *item_new = MallocT<IConsoleVar>(1);
item_new->help = (help != NULL) ? strdup(help) : NULL;
diff --git a/src/fios.cpp b/src/fios.cpp
index 87e7ea93d..a833426a3 100644
--- a/src/fios.cpp
+++ b/src/fios.cpp
@@ -48,7 +48,7 @@ FiosItem *FiosAlloc(void)
{
if (_fios_count == _fios_alloc) {
_fios_alloc += 256;
- ReallocT(&_fios_items, _fios_alloc);
+ _fios_items = ReallocT(_fios_items, _fios_alloc);
}
return &_fios_items[_fios_count++];
}
@@ -324,7 +324,7 @@ FiosItem *FiosGetSavegameList(int mode)
static char *_fios_save_path = NULL;
if (_fios_save_path == NULL) {
- MallocT(&_fios_save_path, MAX_PATH);
+ _fios_save_path = MallocT<char>(MAX_PATH);
ttd_strlcpy(_fios_save_path, _paths.save_dir, MAX_PATH);
}
@@ -372,7 +372,7 @@ FiosItem *FiosGetScenarioList(int mode)
static char *_fios_scn_path = NULL;
if (_fios_scn_path == NULL) {
- MallocT(&_fios_scn_path, MAX_PATH);
+ _fios_scn_path = MallocT<char>(MAX_PATH);
ttd_strlcpy(_fios_scn_path, _paths.scenario_dir, MAX_PATH);
}
@@ -403,7 +403,7 @@ FiosItem *FiosGetHeightmapList(int mode)
static char *_fios_hmap_path = NULL;
if (_fios_hmap_path == NULL) {
- MallocT(&_fios_hmap_path, MAX_PATH);
+ _fios_hmap_path = MallocT<char>(MAX_PATH);
strcpy(_fios_hmap_path, _paths.heightmap_dir);
}
diff --git a/src/fontcache.cpp b/src/fontcache.cpp
index e60fe8bc7..ce0a885d5 100644
--- a/src/fontcache.cpp
+++ b/src/fontcache.cpp
@@ -78,7 +78,7 @@ static FT_Error GetFontByFaceName(const char *font_name, FT_Face *face)
* normal char to match the data returned by RegEnumValue,
* otherwise just use parameter */
#if defined(UNICODE)
- MallocT(&font_namep, MAX_PATH);
+ font_namep = MallocT<char>(MAX_PATH);
MB_TO_WIDE_BUFFER(font_name, font_namep, MAX_PATH * sizeof(TCHAR));
#else
font_namep = (char*)font_name; // only cast because in unicode pointer is not const
@@ -346,12 +346,12 @@ static void SetGlyphPtr(FontSize size, WChar key, const GlyphEntry *glyph)
{
if (_glyph_ptr[size] == NULL) {
DEBUG(freetype, 3, "Allocating root glyph cache for size %u", size);
- CallocT(&_glyph_ptr[size], 256);
+ _glyph_ptr[size] = CallocT<GlyphEntry*>(256);
}
if (_glyph_ptr[size][GB(key, 8, 8)] == NULL) {
DEBUG(freetype, 3, "Allocating glyph cache for range 0x%02X00, size %u", GB(key, 8, 8), size);
- CallocT(&_glyph_ptr[size][GB(key, 8, 8)], 256);
+ _glyph_ptr[size][GB(key, 8, 8)] = CallocT<GlyphEntry>(256);
}
DEBUG(freetype, 4, "Set glyph for unicode character 0x%04X, size %u", key, size);
@@ -484,8 +484,8 @@ SpriteID GetUnicodeGlyph(FontSize size, uint32 key)
void SetUnicodeGlyph(FontSize size, uint32 key, SpriteID sprite)
{
- if (_unicode_glyph_map[size] == NULL) CallocT(&_unicode_glyph_map[size], 256);
- if (_unicode_glyph_map[size][GB(key, 8, 8)] == NULL) CallocT(&_unicode_glyph_map[size][GB(key, 8, 8)], 256);
+ if (_unicode_glyph_map[size] == NULL) _unicode_glyph_map[size] = CallocT<SpriteID*>(256);
+ if (_unicode_glyph_map[size][GB(key, 8, 8)] == NULL) _unicode_glyph_map[size][GB(key, 8, 8)] = CallocT<SpriteID>(256);
_unicode_glyph_map[size][GB(key, 8, 8)][GB(key, 0, 8)] = sprite;
}
diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp
index 3528e71e0..53ebd1fc2 100644
--- a/src/graph_gui.cpp
+++ b/src/graph_gui.cpp
@@ -1151,7 +1151,7 @@ static void GlobalSortSignList(void)
uint n = 0;
/* Create array for sorting */
- ReallocT(&_sign_sort, GetMaxSignIndex() + 1);
+ _sign_sort = ReallocT(_sign_sort, GetMaxSignIndex() + 1);
if (_sign_sort == NULL) error("Could not allocate memory for the sign-sorting-list");
FOR_ALL_SIGNS(si) _sign_sort[n++] = si;
diff --git a/src/heightmap.cpp b/src/heightmap.cpp
index 85e5d34a3..adedc06b4 100644
--- a/src/heightmap.cpp
+++ b/src/heightmap.cpp
@@ -136,7 +136,7 @@ static bool ReadHeightmapPNG(char *filename, uint *x, uint *y, byte **map)
}
if (map != NULL) {
- MallocT(/* NO & */map, info_ptr->width * info_ptr->height);
+ *map = MallocT<byte>(info_ptr->width * info_ptr->height);
if (*map == NULL) {
ShowErrorMessage(STR_PNGMAP_ERR_MISC, STR_PNGMAP_ERROR, 0, 0);
@@ -249,7 +249,7 @@ static bool ReadHeightmapBMP(char *filename, uint *x, uint *y, byte **map)
return false;
}
- MallocT(/* NO & */map, info.width * info.height);
+ *map = MallocT<byte>(info.width * info.height);
if (*map == NULL) {
ShowErrorMessage(STR_PNGMAP_ERR_MISC, STR_BMPMAP_ERROR, 0, 0);
fclose(f);
diff --git a/src/helpers.hpp b/src/helpers.hpp
index b13fc25d4..14b6056b3 100644
--- a/src/helpers.hpp
+++ b/src/helpers.hpp
@@ -10,24 +10,24 @@
/** When allocating using malloc/calloc in C++ it is usually needed to cast the return value
* from void* to the proper pointer type. Another alternative would be MallocT<> as follows */
-template <typename T> FORCEINLINE bool MallocT(T** t_ptr, size_t num_elements)
+template <typename T> FORCEINLINE T* MallocT(size_t num_elements)
{
- *t_ptr = (T*)malloc(num_elements * sizeof(T));
- return (*t_ptr != NULL);
+ T *t_ptr = (T*)malloc(num_elements * sizeof(T));
+ return t_ptr;
}
/** When allocating using malloc/calloc in C++ it is usually needed to cast the return value
* from void* to the proper pointer type. Another alternative would be MallocT<> as follows */
-template <typename T> FORCEINLINE bool CallocT(T** t_ptr, size_t num_elements)
+template <typename T> FORCEINLINE T* CallocT(size_t num_elements)
{
- *t_ptr = (T*)calloc(num_elements, sizeof(T));
- return (*t_ptr != NULL);
+ T *t_ptr = (T*)calloc(num_elements, sizeof(T));
+ return t_ptr;
}
/** When allocating using malloc/calloc in C++ it is usually needed to cast the return value
* from void* to the proper pointer type. Another alternative would be MallocT<> as follows */
-template <typename T> FORCEINLINE bool ReallocT(T** t_ptr, size_t num_elements)
+template <typename T> FORCEINLINE T* ReallocT(T* t_ptr, size_t num_elements)
{
- *t_ptr = (T*)realloc(*t_ptr, num_elements * sizeof(T));
- return (*t_ptr != NULL);
+ t_ptr = (T*)realloc(t_ptr, num_elements * sizeof(T));
+ return t_ptr;
}
/** type safe swap operation */
diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp
index 0fb98bc2c..2b0917811 100644
--- a/src/industry_gui.cpp
+++ b/src/industry_gui.cpp
@@ -560,7 +560,7 @@ static void MakeSortedIndustryList(void)
if (GetNumIndustries() == 0) return;
/* Create array for sorting */
- ReallocT(&_industry_sort, GetMaxIndustryIndex() + 1);
+ _industry_sort = ReallocT(_industry_sort, GetMaxIndustryIndex() + 1);
if (_industry_sort == NULL) error("Could not allocate memory for the industry-sorting-list");
FOR_ALL_INDUSTRIES(i) _industry_sort[n++] = i;
diff --git a/src/map.cpp b/src/map.cpp
index 05a51d8e8..ca590e92b 100644
--- a/src/map.cpp
+++ b/src/map.cpp
@@ -42,7 +42,7 @@ void AllocateMap(uint size_x, uint size_y)
_map_tile_mask = _map_size - 1;
free(_m);
- CallocT(&_m, _map_size);
+ _m = CallocT<Tile>(_map_size);
// XXX TODO handle memory shortage more gracefully
if (_m == NULL) error("Failed to allocate memory for the map");
diff --git a/src/network/core/packet.cpp b/src/network/core/packet.cpp
index 38d00d8c0..511e0c675 100644
--- a/src/network/core/packet.cpp
+++ b/src/network/core/packet.cpp
@@ -26,8 +26,7 @@ extern void NORETURN CDECL error(const char *str, ...);
*/
Packet *NetworkSend_Init(const PacketType type)
{
- Packet *packet;
- MallocT(&packet, 1);
+ Packet *packet = MallocT<Packet>(1);
/* An error is inplace here, because it simply means we ran out of memory. */
if (packet == NULL) error("Failed to allocate Packet");
diff --git a/src/network/core/tcp.cpp b/src/network/core/tcp.cpp
index ce00335fe..98b5d8d5d 100644
--- a/src/network/core/tcp.cpp
+++ b/src/network/core/tcp.cpp
@@ -149,7 +149,7 @@ Packet *NetworkRecv_Packet(NetworkClientState *cs, NetworkRecvStatus *status)
if (cs->socket == INVALID_SOCKET) return NULL;
if (cs->packet_recv == NULL) {
- MallocT(&cs->packet_recv, 1);
+ cs->packet_recv = MallocT<Packet>(1);
if (cs->packet_recv == NULL) error("Failed to allocate packet");
/* Set pos to zero! */
cs->packet_recv->pos = 0;
diff --git a/src/network/core/udp.cpp b/src/network/core/udp.cpp
index 91d751fd5..0776a2c50 100644
--- a/src/network/core/udp.cpp
+++ b/src/network/core/udp.cpp
@@ -252,12 +252,12 @@ void NetworkRecv_NetworkGameInfo(NetworkClientState *cs, Packet *p, NetworkGameI
switch (info->game_info_version) {
case 4: {
- GRFConfig *c, **dst = &info->grfconfig;
+ GRFConfig **dst = &info->grfconfig;
uint i;
uint num_grfs = NetworkRecv_uint8(cs, p);
for (i = 0; i < num_grfs; i++) {
- CallocT(&c, 1);
+ GRFConfig *c = CallocT<GRFConfig>(1);
NetworkRecv_GRFIdentifier(cs, p, c);
HandleIncomingNetworkGameInfoGRFConfig(c);
diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp
index 338d076e6..9e9b5969c 100644
--- a/src/network/network_client.cpp
+++ b/src/network/network_client.cpp
@@ -570,8 +570,7 @@ DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_SYNC)
DEF_CLIENT_RECEIVE_COMMAND(PACKET_SERVER_COMMAND)
{
- CommandPacket *cp;
- MallocT(&cp, 1);
+ CommandPacket *cp = MallocT<CommandPacket>(1);
cp->player = (PlayerID)NetworkRecv_uint8(MY_CLIENT, p);
cp->cmd = NetworkRecv_uint32(MY_CLIENT, p);
cp->p1 = NetworkRecv_uint32(MY_CLIENT, p);
diff --git a/src/network/network_data.cpp b/src/network/network_data.cpp
index 89011f18d..4b0166c9a 100644
--- a/src/network/network_data.cpp
+++ b/src/network/network_data.cpp
@@ -14,8 +14,7 @@
// Add a command to the local command queue
void NetworkAddCommandQueue(NetworkClientState *cs, CommandPacket *cp)
{
- CommandPacket* new_cp;
- MallocT(&new_cp, 1);
+ CommandPacket* new_cp = MallocT<CommandPacket>(1);
*new_cp = *cp;
@@ -31,8 +30,7 @@ void NetworkAddCommandQueue(NetworkClientState *cs, CommandPacket *cp)
// Prepare a DoCommand to be send over the network
void NetworkSend_Command(TileIndex tile, uint32 p1, uint32 p2, uint32 cmd, CommandCallback *callback)
{
- CommandPacket *c;
- MallocT(&c, 1);
+ CommandPacket *c = MallocT<CommandPacket>(1);
byte temp_callback;
c->player = _local_player;
diff --git a/src/network/network_gamelist.cpp b/src/network/network_gamelist.cpp
index b1b3993bb..a202769e0 100644
--- a/src/network/network_gamelist.cpp
+++ b/src/network/network_gamelist.cpp
@@ -26,7 +26,7 @@ NetworkGameList *NetworkGameListAddItem(uint32 ip, uint16 port)
prev_item = item;
}
- MallocT(&item, 1);
+ item = MallocT<NetworkGameList>(1);
memset(item, 0, sizeof(*item));
item->next = NULL;
item->ip = ip;
diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp
index 7a6fc221b..56fad89ee 100644
--- a/src/network/network_gui.cpp
+++ b/src/network/network_gui.cpp
@@ -167,7 +167,7 @@ static void BuildNetworkGameList(network_ql_d *nqld)
/* Create temporary array of games to use for listing */
free(nqld->sort_list);
- MallocT(&nqld->sort_list, n);
+ nqld->sort_list = MallocT<NetworkGameList*>(n);
if (nqld->sort_list == NULL) error("Could not allocate memory for the network-game-sorting-list");
nqld->l.list_length = n;
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp
index c7bc2069d..ed7951c41 100644
--- a/src/network/network_server.cpp
+++ b/src/network/network_server.cpp
@@ -793,8 +793,7 @@ DEF_SERVER_RECEIVE_COMMAND(PACKET_CLIENT_COMMAND)
const NetworkClientInfo *ci;
byte callback;
- CommandPacket *cp;
- MallocT(&cp, 1);
+ CommandPacket *cp = MallocT<CommandPacket>(1);
// The client was never joined.. so this is impossible, right?
// Ignore the packet, give the client a warning, and close his connection
diff --git a/src/newgrf.cpp b/src/newgrf.cpp
index 988698762..6d4f1a333 100644
--- a/src/newgrf.cpp
+++ b/src/newgrf.cpp
@@ -843,7 +843,7 @@ static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int
}
/* Allocate station specs if necessary */
- if (_cur_grffile->stations == NULL) CallocT(&_cur_grffile->stations, MAX_STATIONS);
+ if (_cur_grffile->stations == NULL) _cur_grffile->stations = CallocT<StationSpec*>(MAX_STATIONS);
statspec = &_cur_grffile->stations[stid];
@@ -863,7 +863,7 @@ static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int
uint32 classid;
/* Property 0x08 is special; it is where the station is allocated */
- if (statspec[i] == NULL) CallocT(&statspec[i], 1);
+ if (statspec[i] == NULL) statspec[i] = CallocT<StationSpec>(1);
/* Swap classid because we read it in BE meaning WAYP or DFLT */
classid = grf_load_dword(&buf);
@@ -877,7 +877,7 @@ static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int
uint t;
statspec->tiles = grf_load_extended(&buf);
- CallocT(&statspec->renderdata, statspec->tiles);
+ statspec->renderdata = CallocT<DrawTileSprites>(statspec->tiles);
statspec->copied_renderdata = false;
for (t = 0; t < statspec->tiles; t++) {
@@ -892,7 +892,7 @@ static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int
DrawTileSeqStruct *dtss;
// no relative bounding box support
- ReallocT((DrawTileSeqStruct**)&dts->seq, ++seq_count);
+ dts->seq = ReallocT((DrawTileSeqStruct*)dts->seq, ++seq_count);
dtss = (DrawTileSeqStruct*) &dts->seq[seq_count - 1];
dtss->delta_x = grf_load_byte(&buf);
@@ -958,10 +958,10 @@ static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int
//debug("l %d > %d ?", length, stat->lengths);
if (length > statspec->lengths) {
- ReallocT(&statspec->platforms, length);
+ statspec->platforms = ReallocT(statspec->platforms, length);
memset(statspec->platforms + statspec->lengths, 0, length - statspec->lengths);
- ReallocT(&statspec->layouts, length);
+ statspec->layouts = ReallocT(statspec->layouts, length);
memset(statspec->layouts + statspec->lengths, 0,
(length - statspec->lengths) * sizeof(*statspec->layouts));
@@ -971,7 +971,7 @@ static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int
//debug("p %d > %d ?", number, stat->platforms[l]);
if (number > statspec->platforms[l]) {
- ReallocT(&statspec->layouts[l], number);
+ statspec->layouts[l] = ReallocT(statspec->layouts[l], number);
// We expect NULL being 0 here, but C99 guarantees that.
memset(statspec->layouts[l] + statspec->platforms[l], 0,
(number - statspec->platforms[l]) * sizeof(**statspec->layouts));
@@ -980,7 +980,7 @@ static bool StationChangeInfo(uint stid, int numinfo, int prop, byte **bufp, int
}
p = 0;
- MallocT(&layout, length * number);
+ layout = MallocT<byte>(length * number);
for (l = 0; l < length; l++) {
for (p = 0; p < number; p++) {
layout[l * number + p] = grf_load_byte(&buf);
@@ -1076,7 +1076,7 @@ static bool BridgeChangeInfo(uint brid, int numinfo, int prop, byte **bufp, int
if (bridge->sprite_table == NULL) {
/* Allocate memory for sprite table pointers and zero out */
- CallocT(&bridge->sprite_table, 7);
+ bridge->sprite_table = CallocT<PalSpriteID*>(7);
}
for (; numtables-- != 0; tableid++) {
@@ -1089,7 +1089,7 @@ static bool BridgeChangeInfo(uint brid, int numinfo, int prop, byte **bufp, int
}
if (bridge->sprite_table[tableid] == NULL) {
- MallocT(&bridge->sprite_table[tableid], 32);
+ bridge->sprite_table[tableid] = MallocT<PalSpriteID>(32);
}
for (sprite = 0; sprite < 32; sprite++)
@@ -1596,7 +1596,7 @@ static void NewSpriteGroup(byte *buf, int len)
if (setid >= _cur_grffile->spritegroups_count) {
// Allocate memory for new sprite group references.
- ReallocT(&_cur_grffile->spritegroups, setid + 1);
+ _cur_grffile->spritegroups = ReallocT(_cur_grffile->spritegroups, setid + 1);
// Initialise new space to NULL
for (; _cur_grffile->spritegroups_count < (setid + 1); _cur_grffile->spritegroups_count++)
_cur_grffile->spritegroups[_cur_grffile->spritegroups_count] = NULL;
@@ -1641,7 +1641,7 @@ static void NewSpriteGroup(byte *buf, int len)
}
group->g.determ.num_adjusts++;
- ReallocT(&group->g.determ.adjusts, group->g.determ.num_adjusts);
+ group->g.determ.adjusts = ReallocT(group->g.determ.adjusts, group->g.determ.num_adjusts);
adjust = &group->g.determ.adjusts[group->g.determ.num_adjusts - 1];
@@ -1667,7 +1667,7 @@ static void NewSpriteGroup(byte *buf, int len)
} while (HASBIT(varadjust, 5));
group->g.determ.num_ranges = grf_load_byte(&buf);
- CallocT(&group->g.determ.ranges, group->g.determ.num_ranges);
+ group->g.determ.ranges = CallocT<DeterministicSpriteGroupRange>(group->g.determ.num_ranges);
if (!check_length(bufend - buf, 2 + (2 + 2 * varsize) * group->g.determ.num_ranges, "NewSpriteGroup (Deterministic)")) return;
@@ -1699,7 +1699,7 @@ static void NewSpriteGroup(byte *buf, int len)
group->g.random.cmp_mode = HASBIT(triggers, 7) ? RSG_CMP_ALL : RSG_CMP_ANY;
group->g.random.lowest_randbit = grf_load_byte(&buf);
group->g.random.num_groups = grf_load_byte(&buf);
- CallocT(&group->g.random.groups, group->g.random.num_groups);
+ group->g.random.groups = CallocT<const SpriteGroup*>(group->g.random.num_groups);
if (!check_length(bufend - buf, 2 * group->g.random.num_groups, "NewSpriteGroup (Randomized) (2)")) return;
@@ -1739,8 +1739,8 @@ static void NewSpriteGroup(byte *buf, int len)
group->g.real.num_loaded = num_loaded;
group->g.real.num_loading = num_loading;
- if (num_loaded > 0) CallocT(&group->g.real.loaded, num_loaded);
- if (num_loading > 0) CallocT(&group->g.real.loading, num_loading);
+ if (num_loaded > 0) group->g.real.loaded = CallocT<const SpriteGroup*>(num_loaded);
+ if (num_loading > 0) group->g.real.loading = CallocT<const SpriteGroup*>(num_loading);
grfmsg(6, "NewSpriteGroup: New SpriteGroup 0x%02X, %u views, %u loaded, %u loading",
setid, sprites, num_loaded, num_loading);
@@ -1885,7 +1885,7 @@ static void FeatureMapSpriteGroup(byte *buf, int len)
}
if (!wagover && last_engines_count != idcount) {
- ReallocT(&last_engines, idcount);
+ last_engines = ReallocT(last_engines, idcount);
last_engines_count = idcount;
}
@@ -2275,7 +2275,7 @@ static void CfgApply(byte *buf, int len)
/* Check if the sprite is a pseudo sprite. We can't operate on real sprites. */
if (type == 0xFF) {
- MallocT(&_preload_sprite, num);
+ _preload_sprite = MallocT<byte>(num);
FioReadBlock(_preload_sprite, num);
}
@@ -3027,7 +3027,7 @@ static void DefineGotoLabel(byte *buf, int len)
if (!check_length(len, 1, "DefineGotoLabel")) return;
buf++; len--;
- MallocT(&label, 1);
+ label = MallocT<GRFLabel>(1);
label->label = grf_load_byte(&buf);
label->nfo_line = _nfo_line;
label->pos = FioGetPos();
@@ -3490,7 +3490,7 @@ static void InitNewGRFFile(const GRFConfig *config, int sprite_offset)
return;
}
- CallocT(&newfile, 1);
+ newfile = CallocT<GRFFile>(1);
if (newfile == NULL) error ("Out of memory");
@@ -3618,7 +3618,7 @@ static void DecodeSpecialSprite(uint num, GrfLoadingStage stage)
if (_preload_sprite == NULL) {
/* No preloaded sprite to work with; allocate and read the
* pseudo sprite content. */
- MallocT(&buf, num);
+ buf = MallocT<byte>(num);
if (buf == NULL) error("DecodeSpecialSprite: Could not allocate memory");
FioReadBlock(buf, num);
} else {
diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp
index c624328dd..1c49bd207 100644
--- a/src/newgrf_config.cpp
+++ b/src/newgrf_config.cpp
@@ -119,12 +119,10 @@ void ClearGRFConfigList(GRFConfig **config)
* @return pointer to the last value added to the destination list */
GRFConfig **CopyGRFConfigList(GRFConfig **dst, const GRFConfig *src)
{
- GRFConfig *c;
-
/* Clear destination as it will be overwritten */
ClearGRFConfigList(dst);
for (; src != NULL; src = src->next) {
- CallocT(&c, 1);
+ GRFConfig *c = CallocT<GRFConfig>(1);
*c = *src;
if (src->filename != NULL) c->filename = strdup(src->filename);
if (src->name != NULL) c->name = strdup(src->name);
@@ -245,7 +243,6 @@ static uint ScanPath(const char *path)
struct stat sb;
struct dirent *dirent;
DIR *dir;
- GRFConfig *c;
if ((dir = opendir(path)) == NULL) return 0;
@@ -270,7 +267,7 @@ static uint ScanPath(const char *path)
if (ext == NULL) continue;
if (strcasecmp(ext, ".grf") != 0) continue;
- CallocT(&c, 1);
+ GRFConfig *c = CallocT<GRFConfig>(1);
c->filename = strdup(file);
if (FillGRFDetails(c, false)) {
@@ -375,7 +372,7 @@ char *FindUnknownGRFName(uint32 grfid, uint8 *md5sum, bool create)
if (!create) return NULL;
- CallocT(&grf, 1);
+ grf = CallocT<UnknownGRF>(1);
grf->grfid = grfid;
grf->next = unknown_grfs;
ttd_strlcpy(grf->name, UNKNOWN_GRF_NAME_PLACEHOLDER, sizeof(grf->name));
@@ -446,8 +443,7 @@ static void Load_NGRF(void)
GRFConfig **last = &first;
while (SlIterateArray() != -1) {
- GRFConfig *c;
- CallocT(&c, 1);
+ GRFConfig *c = CallocT<GRFConfig>(1);
SlObject(c, _grfconfig_desc);
/* Append our configuration to the list */
diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp
index 58f1e43b6..7732c77f1 100644
--- a/src/newgrf_engine.cpp
+++ b/src/newgrf_engine.cpp
@@ -83,7 +83,7 @@ void SetWagonOverrideSprites(EngineID engine, CargoID cargo, const SpriteGroup *
wos = &_engine_wagon_overrides[engine];
wos->overrides_count++;
- ReallocT(&wos->overrides, wos->overrides_count);
+ wos->overrides = ReallocT(wos->overrides, wos->overrides_count);
wo = &wos->overrides[wos->overrides_count - 1];
/* FIXME: If we are replacing an override, release original SpriteGroup
@@ -92,7 +92,7 @@ void SetWagonOverrideSprites(EngineID engine, CargoID cargo, const SpriteGroup *
wo->group = group;
wo->cargo = cargo;
wo->trains = trains;
- MallocT(&wo->train_id, trains);
+ wo->train_id = MallocT<byte>(trains);
memcpy(wo->train_id, train_id, trains);
}
diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp
index 7eb63d722..d5934a433 100644
--- a/src/newgrf_gui.cpp
+++ b/src/newgrf_gui.cpp
@@ -154,7 +154,7 @@ static void NewGRFAddDlgWndProc(Window *w, WindowEvent *e)
case 6: /* Add selection to list */
if (WP(w, newgrf_add_d).sel != NULL) {
const GRFConfig *src = WP(w, newgrf_add_d).sel;
- GRFConfig **list, *c;
+ GRFConfig **list;
/* Find last entry in the list, checking for duplicate grfid on the way */
for (list = WP(w, newgrf_add_d).list; *list != NULL; list = &(*list)->next) {
@@ -165,7 +165,7 @@ static void NewGRFAddDlgWndProc(Window *w, WindowEvent *e)
}
/* Copy GRF details from scanned list */
- CallocT(&c, 1);
+ GRFConfig *c = CallocT<GRFConfig>(1);
*c = *src;
c->filename = strdup(src->filename);
if (src->name != NULL) c->name = strdup(src->name);
diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp
index 0ef1ec84e..0b910da58 100644
--- a/src/newgrf_station.cpp
+++ b/src/newgrf_station.cpp
@@ -45,13 +45,13 @@ void ResetStationClasses(void)
station_classes[0].id = 'DFLT';
station_classes[0].name = STR_STAT_CLASS_DFLT;
station_classes[0].stations = 1;
- MallocT(&station_classes[0].spec, 1);
+ station_classes[0].spec = MallocT<StationSpec*>(1);
station_classes[0].spec[0] = NULL;
station_classes[1].id = 'WAYP';
station_classes[1].name = STR_STAT_CLASS_WAYP;
station_classes[1].stations = 1;
- MallocT(&station_classes[1].spec, 1);
+ station_classes[1].spec = MallocT<StationSpec*>(1);
station_classes[1].spec[0] = NULL;
}
@@ -148,7 +148,7 @@ void SetCustomStationSpec(StationSpec *statspec)
station_class = &station_classes[statspec->sclass];
i = station_class->stations++;
- ReallocT(&station_class->spec, station_class->stations);
+ station_class->spec = ReallocT(station_class->spec, station_class->stations);
station_class->spec[i] = statspec;
statspec->allocated = true;
@@ -607,7 +607,7 @@ int AllocateSpecToStation(const StationSpec *statspec, Station *st, bool exec)
if (exec) {
if (i >= st->num_specs) {
st->num_specs = i + 1;
- ReallocT(&st->speclist, st->num_specs);
+ st->speclist = ReallocT(st->speclist, st->num_specs);
if (st->num_specs == 2) {
/* Initial allocation */
@@ -653,7 +653,7 @@ void DeallocateSpecFromStation(Station* st, byte specindex)
for (; st->speclist[st->num_specs - 1].grfid == 0 && st->num_specs > 1; st->num_specs--);
if (st->num_specs > 1) {
- ReallocT(&st->speclist, st->num_specs);
+ st->speclist = ReallocT(st->speclist, st->num_specs);
} else {
free(st->speclist);
st->num_specs = 0;
diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp
index af1dc688a..021defb9c 100644
--- a/src/newgrf_text.cpp
+++ b/src/newgrf_text.cpp
@@ -158,8 +158,7 @@ static byte _currentLangID = GRFLX_ENGLISH; //by default, english is used.
char *TranslateTTDPatchCodes(const char *str)
{
- char *tmp;
- MallocT(&tmp, strlen(str) * 10 + 1); /* Allocate space to allow for expansion */
+ char *tmp = MallocT<char>(strlen(str) * 10 + 1); /* Allocate space to allow for expansion */
char *d = tmp;
bool unicode = false;
WChar c;
@@ -255,7 +254,7 @@ char *TranslateTTDPatchCodes(const char *str)
}
*d = '\0';
- ReallocT(&tmp, strlen(tmp) + 1);
+ tmp = ReallocT(tmp, strlen(tmp) + 1);
return tmp;
}
diff --git a/src/oldpool.cpp b/src/oldpool.cpp
index d19aa684e..f226307a1 100644
--- a/src/oldpool.cpp
+++ b/src/oldpool.cpp
@@ -50,11 +50,11 @@ bool AddBlockToPool(OldMemoryPool *pool)
DEBUG(misc, 4, "[Pool] (%s) increasing size of pool to %d items (%d bytes)", pool->name, pool->total_items, pool->total_items * pool->item_size);
/* Increase the poolsize */
- ReallocT(&pool->blocks, pool->current_blocks + 1);
+ pool->blocks = ReallocT(pool->blocks, pool->current_blocks + 1);
if (pool->blocks == NULL) error("Pool: (%s) could not allocate memory for blocks", pool->name);
/* Allocate memory to the new block item */
- MallocT(&pool->blocks[pool->current_blocks], pool->item_size * (1 << pool->block_size_bits));
+ pool->blocks[pool->current_blocks] = MallocT<byte>(pool->item_size * (1 << pool->block_size_bits));
if (pool->blocks[pool->current_blocks] == NULL)
error("Pool: (%s) could not allocate memory for blocks", pool->name);
diff --git a/src/openttd.cpp b/src/openttd.cpp
index c1a66a555..92181045f 100644
--- a/src/openttd.cpp
+++ b/src/openttd.cpp
@@ -120,7 +120,7 @@ void *ReadFileToMem(const char *filename, size_t *lenp, size_t maxsize)
fseek(in, 0, SEEK_END);
len = ftell(in);
fseek(in, 0, SEEK_SET);
- if (len > maxsize || !MallocT(&mem, len + 1)) {
+ if (len > maxsize || (mem = MallocT<byte>(len + 1)) == NULL) {
fclose(in);
return NULL;
}
diff --git a/src/queue.cpp b/src/queue.cpp
index 44ace52e5..b371908e0 100644
--- a/src/queue.cpp
+++ b/src/queue.cpp
@@ -49,15 +49,14 @@ static Queue* init_stack(Queue* q, uint max_size)
q->free = Stack_Free;
q->data.stack.max_size = max_size;
q->data.stack.size = 0;
- MallocT(&q->data.stack.elements, max_size);
+ q->data.stack.elements = MallocT<void*>(max_size);
q->freeq = false;
return q;
}
Queue* new_Stack(uint max_size)
{
- Queue* q;
- MallocT(&q, 1);
+ Queue* q = MallocT<Queue>(1);
init_stack(q, max_size);
q->freeq = true;
@@ -127,16 +126,14 @@ static Queue* init_fifo(Queue* q, uint max_size)
q->data.fifo.max_size = max_size;
q->data.fifo.head = 0;
q->data.fifo.tail = 0;
- MallocT(&q->data.fifo.elements, max_size);
+ q->data.fifo.elements = MallocT<void*>(max_size);
q->freeq = false;
return q;
}
Queue* new_Fifo(uint max_size)
{
- Queue* q;
- MallocT(&q, 1);
-
+ Queue* q = MallocT<Queue>(1);
init_fifo(q, max_size);
q->freeq = true;
return q;
@@ -169,8 +166,7 @@ static void InsSort_Free(Queue* q, bool free_values)
static bool InsSort_Push(Queue* q, void* item, int priority)
{
- InsSortNode* newnode;
- MallocT(&newnode, 1);
+ InsSortNode* newnode = MallocT<InsSortNode>(1);
if (newnode == NULL) return false;
newnode->item = item;
@@ -224,8 +220,7 @@ void init_InsSort(Queue* q)
Queue* new_InsSort(void)
{
- Queue* q;
- MallocT(&q, 1);
+ Queue* q = MallocT<Queue>(1);
init_InsSort(q);
q->freeq = true;
@@ -304,7 +299,7 @@ static bool BinaryHeap_Push(Queue* q, void* item, int priority)
if (q->data.binaryheap.elements[q->data.binaryheap.size >> BINARY_HEAP_BLOCKSIZE_BITS] == NULL) {
/* The currently allocated blocks are full, allocate a new one */
assert((q->data.binaryheap.size & BINARY_HEAP_BLOCKSIZE_MASK) == 0);
- MallocT(&q->data.binaryheap.elements[q->data.binaryheap.size >> BINARY_HEAP_BLOCKSIZE_BITS], BINARY_HEAP_BLOCKSIZE);
+ q->data.binaryheap.elements[q->data.binaryheap.size >> BINARY_HEAP_BLOCKSIZE_BITS] = MallocT<BinaryHeapNode>(BINARY_HEAP_BLOCKSIZE);
q->data.binaryheap.blocks++;
#ifdef QUEUE_DEBUG
printf("[BinaryHeap] Increasing size of elements to %d nodes\n", q->data.binaryheap.blocks * BINARY_HEAP_BLOCKSIZE);
@@ -432,8 +427,8 @@ void init_BinaryHeap(Queue* q, uint max_size)
q->data.binaryheap.size = 0;
// We malloc memory in block of BINARY_HEAP_BLOCKSIZE
// It autosizes when it runs out of memory
- CallocT(&q->data.binaryheap.elements, (max_size - 1) / BINARY_HEAP_BLOCKSIZE + 1);
- MallocT(&q->data.binaryheap.elements[0], BINARY_HEAP_BLOCKSIZE);
+ q->data.binaryheap.elements = CallocT<BinaryHeapNode*>((max_size - 1) / BINARY_HEAP_BLOCKSIZE + 1);
+ q->data.binaryheap.elements[0] = MallocT<BinaryHeapNode>(BINARY_HEAP_BLOCKSIZE);
q->data.binaryheap.blocks = 1;
q->freeq = false;
#ifdef QUEUE_DEBUG
@@ -443,8 +438,7 @@ void init_BinaryHeap(Queue* q, uint max_size)
Queue* new_BinaryHeap(uint max_size)
{
- Queue* q;
- MallocT(&q, 1);
+ Queue* q = MallocT<Queue>(1);
init_BinaryHeap(q, max_size);
q->freeq = true;
@@ -481,8 +475,7 @@ void init_Hash(Hash* h, Hash_HashProc* hash, uint num_buckets)
Hash* new_Hash(Hash_HashProc* hash, int num_buckets)
{
- Hash* h;
- MallocT(&h, 1);
+ Hash* h = MallocT<Hash>(1);
init_Hash(h, hash, num_buckets);
h->freeh = true;
@@ -716,7 +709,7 @@ void* Hash_Set(Hash* h, uint key1, uint key2, void* value)
node = h->buckets + hash;
} else {
/* Add it after prev */
- MallocT(&node, 1);
+ node = MallocT<HashNode>(1);
prev->next = node;
}
node->next = NULL;
diff --git a/src/screenshot.cpp b/src/screenshot.cpp
index f66745540..9408d20f0 100644
--- a/src/screenshot.cpp
+++ b/src/screenshot.cpp
@@ -68,7 +68,6 @@ static bool MakeBmpImage(const char *name, ScreenshotCallback *callb, void *user
BitmapFileHeader bfh;
BitmapInfoHeader bih;
RgbQuad rq[256];
- Pixel *buff;
FILE *f;
uint i, padw;
uint n, maxlines;
@@ -119,7 +118,7 @@ static bool MakeBmpImage(const char *name, ScreenshotCallback *callb, void *user
maxlines = clamp(65536 / padw, 16, 128);
// now generate the bitmap bits
- MallocT(&buff, padw * maxlines); // by default generate 128 lines at a time.
+ Pixel *buff = MallocT<Pixel>(padw * maxlines); // by default generate 128 lines at a time.
if (buff == NULL) {
fclose(f);
return false;
@@ -170,7 +169,6 @@ static void PNGAPI png_my_warning(png_structp png_ptr, png_const_charp message)
static bool MakePNGImage(const char *name, ScreenshotCallback *callb, void *userdata, uint w, uint h, int pixelformat, const Colour *palette)
{
png_color rq[256];
- Pixel *buff;
FILE *f;
uint i, y, n;
uint maxlines;
@@ -226,7 +224,7 @@ static bool MakePNGImage(const char *name, ScreenshotCallback *callb, void *user
maxlines = clamp(65536 / w, 16, 128);
// now generate the bitmap bits
- MallocT(&buff, w * maxlines); // by default generate 128 lines at a time.
+ Pixel *buff = MallocT<Pixel>(w * maxlines); // by default generate 128 lines at a time.
if (buff == NULL) {
png_destroy_write_struct(&png_ptr, &info_ptr);
fclose(f);
@@ -283,7 +281,6 @@ assert_compile(sizeof(PcxHeader) == 128);
static bool MakePCXImage(const char *name, ScreenshotCallback *callb, void *userdata, uint w, uint h, int pixelformat, const Colour *palette)
{
- Pixel *buff;
FILE *f;
uint maxlines;
uint y;
@@ -323,7 +320,7 @@ static bool MakePCXImage(const char *name, ScreenshotCallback *callb, void *user
maxlines = clamp(65536 / w, 16, 128);
// now generate the bitmap bits
- MallocT(&buff, w * maxlines); // by default generate 128 lines at a time.
+ Pixel *buff = MallocT<Pixel>(w * maxlines); // by default generate 128 lines at a time.
if (buff == NULL) {
fclose(f);
return false;
diff --git a/src/settings.cpp b/src/settings.cpp
index e6dd5514f..37b1b83f9 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -236,7 +236,7 @@ static IniFile *ini_load(const char *filename)
if (ns > a) {
a = max(a, 128U);
do a*=2; while (a < ns);
- ReallocT(&comment, comment_alloc = a);
+ comment = ReallocT(comment, comment_alloc = a);
}
pos = comment_size;
comment_size += (e - s + 1);
@@ -1509,8 +1509,7 @@ static GRFConfig *GRFLoadConfig(IniFile *ini, const char *grpname, bool is_stati
if (group == NULL) return NULL;
for (item = group->item; item != NULL; item = item->next) {
- GRFConfig *c;
- CallocT(&c, 1);
+ GRFConfig *c = CallocT<GRFConfig>(1);
c->filename = strdup(item->name);
/* Parse parameters */
diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp
index e3253f460..9819e845c 100644
--- a/src/settings_gui.cpp
+++ b/src/settings_gui.cpp
@@ -695,7 +695,7 @@ static void PatchesSelectionWndProc(Window *w, WindowEvent *e)
for (page = &_patches_page[0]; page != endof(_patches_page); page++) {
uint i;
- MallocT(&page->entries, page->num);
+ page->entries = MallocT<PatchEntry>(page->num);
for (i = 0; i != page->num; i++) {
uint index;
const SettingDesc *sd = GetPatchFromName(page->names[i], &index);
diff --git a/src/sound.cpp b/src/sound.cpp
index c1d9c73f4..1a60b14ba 100644
--- a/src/sound.cpp
+++ b/src/sound.cpp
@@ -23,13 +23,12 @@ static FileEntry *_files;
static void OpenBankFile(const char *filename)
{
- FileEntry *fe;
uint count;
uint i;
FioOpenFile(SOUND_SLOT, filename);
count = FioReadDword() / 8;
- CallocT(&fe, count);
+ FileEntry *fe = CallocT<FileEntry>(count);
if (fe == NULL) {
_file_count = 0;
@@ -102,7 +101,6 @@ uint GetNumOriginalSounds(void)
static bool SetBankSource(MixerChannel *mc, uint bank)
{
const FileEntry *fe;
- int8 *mem;
uint i;
if (bank >= GetNumSounds()) return false;
@@ -110,7 +108,7 @@ static bool SetBankSource(MixerChannel *mc, uint bank)
if (fe->file_size == 0) return false;
- MallocT(&mem, fe->file_size);
+ int8 *mem = MallocT<int8>(fe->file_size);
if (mem == NULL) return false;
FioSeekToFile(fe->file_offset);
diff --git a/src/sound/win32_s.cpp b/src/sound/win32_s.cpp
index a1ecab017..68194ad39 100644
--- a/src/sound/win32_s.cpp
+++ b/src/sound/win32_s.cpp
@@ -18,7 +18,7 @@ static void PrepareHeader(WAVEHDR *hdr)
{
hdr->dwBufferLength = _bufsize * 4;
hdr->dwFlags = 0;
- MallocT(&hdr->lpData, _bufsize * 4);
+ hdr->lpData = MallocT<char>(_bufsize * 4);
if (hdr->lpData == NULL ||
waveOutPrepareHeader(_waveout, hdr, sizeof(WAVEHDR)) != MMSYSERR_NOERROR)
error("waveOutPrepareHeader failed");
diff --git a/src/spritecache.cpp b/src/spritecache.cpp
index 6eaa1d7fd..1f9d838ed 100644
--- a/src/spritecache.cpp
+++ b/src/spritecache.cpp
@@ -38,7 +38,7 @@ static SpriteCache *AllocateSpriteCache(uint index)
DEBUG(sprite, 4, "Increasing sprite cache to %d items (%d bytes)", items, items * sizeof(*_spritecache));
- ReallocT(&_spritecache, items);
+ _spritecache = ReallocT(_spritecache, items);
if (_spritecache == NULL) {
error("Unable to allocate sprite cache of %d items (%d bytes)", items, items * sizeof(*_spritecache));
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp
index e94da91da..ea89c45f9 100644
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -3065,7 +3065,7 @@ static void SaveLoad_STNS(Station *st)
if (st->num_specs != 0) {
/* Allocate speclist memory when loading a game */
- if (st->speclist == NULL) CallocT(&st->speclist, st->num_specs);
+ if (st->speclist == NULL) st->speclist = CallocT<StationSpecList>(st->num_specs);
for (i = 0; i < st->num_specs; i++) SlObject(&st->speclist[i], _station_speclist_desc);
}
}
diff --git a/src/station_gui.cpp b/src/station_gui.cpp
index c4f778e1a..94f6d6341 100644
--- a/src/station_gui.cpp
+++ b/src/station_gui.cpp
@@ -198,13 +198,12 @@ static void BuildStationsList(plstations_d* sl, PlayerID owner, byte facilities,
{
uint n = 0;
uint i, j;
- const Station** station_sort;
const Station *st;
if (!(sl->flags & SL_REBUILD)) return;
/* Create array for sorting */
- MallocT(&station_sort, GetMaxStationIndex() + 1);
+ const Station** station_sort = MallocT<const Station*>(GetMaxStationIndex() + 1);
if (station_sort == NULL) error("Could not allocate memory for the station-sorting-list");
DEBUG(misc, 3, "Building station list for player %d", owner);
@@ -231,7 +230,7 @@ static void BuildStationsList(plstations_d* sl, PlayerID owner, byte facilities,
}
free((void*)sl->sort_list);
- MallocT(&sl->sort_list, n);
+ sl->sort_list = MallocT<const Station*>(n);
if (n != 0 && sl->sort_list == NULL) error("Could not allocate memory for the station-sorting-list");
sl->list_length = n;
diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp
index 4268f0bbb..9b6ae5102 100644
--- a/src/strgen/strgen.cpp
+++ b/src/strgen/strgen.cpp
@@ -845,7 +845,7 @@ static void HandleString(char *str, bool master)
}
// Allocate a new LangString
- CallocT(&ent, 1);
+ ent = CallocT<LangString>(1);
_strings[_next_string_id] = ent;
ent->index = _next_string_id++;
ent->name = strdup(str);
@@ -855,8 +855,7 @@ static void HandleString(char *str, bool master)
}
if (casep != NULL) {
- Case* c;
- MallocT(&c, 1);
+ Case* c = MallocT<Case>(1);
c->caseidx = ResolveCaseName(casep, strlen(casep));
c->string = strdup(s);
@@ -885,8 +884,7 @@ static void HandleString(char *str, bool master)
if (!CheckCommandsMatch(s, ent->english, str)) return;
if (casep != NULL) {
- Case* c;
- MallocT(&c, 1);
+ Case* c = MallocT<Case>(1);
c->caseidx = ResolveCaseName(casep, strlen(casep));
c->string = strdup(s);
diff --git a/src/string.cpp b/src/string.cpp
index 7e4aaf1d2..4556ac64b 100644
--- a/src/string.cpp
+++ b/src/string.cpp
@@ -59,12 +59,11 @@ char* CDECL str_fmt(const char* str, ...)
char buf[4096];
va_list va;
int len;
- char* p;
va_start(va, str);
len = vsnprintf(buf, lengthof(buf), str, va);
va_end(va);
- MallocT(&p, len + 1);
+ char* p = MallocT<char>(len + 1);
if (p != NULL) memcpy(p, buf, len + 1);
return p;
}
diff --git a/src/strings.cpp b/src/strings.cpp
index 86a6709fc..6d1f29b9d 100644
--- a/src/strings.cpp
+++ b/src/strings.cpp
@@ -1166,7 +1166,7 @@ bool ReadLanguagePack(int lang_index)
}
// Allocate offsets
- MallocT(&langpack_offs, tot_count);
+ langpack_offs = MallocT<char*>(tot_count);
// Fill offsets
s = lang_pack->data;
diff --git a/src/tgp.cpp b/src/tgp.cpp
index 491562cd3..88630b957 100644
--- a/src/tgp.cpp
+++ b/src/tgp.cpp
@@ -239,7 +239,7 @@ static inline bool AllocHeightMap(void)
/* Allocate memory block for height map row pointers */
_height_map.total_size = (_height_map.size_x + 1) * (_height_map.size_y + 1);
_height_map.dim_x = _height_map.size_x + 1;
- CallocT(&_height_map.h, _height_map.total_size);
+ _height_map.h = CallocT<height_t>(_height_map.total_size);
if (_height_map.h == NULL) return false;
/* Iterate through height map initialize values */
@@ -467,12 +467,12 @@ static void HeightMapAdjustWaterLevel(amplitude_t water_percent, height_t h_max_
height_t h_min, h_max, h_avg, h_water_level;
int water_tiles, desired_water_tiles;
height_t *h;
- int *hist_buf, *hist;
+ int *hist;
HeightMapGetMinMaxAvg(&h_min, &h_max, &h_avg);
/* Allocate histogram buffer and clear its cells */
- CallocT(&hist_buf, h_max - h_min + 1);
+ int *hist_buf = CallocT<int>(h_max - h_min + 1);
/* Fill histogram */
hist = HeightMapMakeHistogram(h_min, h_max, hist_buf);
diff --git a/src/thread.cpp b/src/thread.cpp
index 233c4ecb6..66456d1ab 100644
--- a/src/thread.cpp
+++ b/src/thread.cpp
@@ -31,8 +31,7 @@ static void Proxy(void* arg)
OTTDThread* OTTDCreateThread(OTTDThreadFunc function, void* arg)
{
- OTTDThread* t;
- MallocT(&t, 1);
+ OTTDThread* t = MallocT<OTTDThread>(1);
if (t == NULL) return NULL;
@@ -74,8 +73,7 @@ struct OTTDThread {
OTTDThread* OTTDCreateThread(OTTDThreadFunc function, void* arg)
{
- OTTDThread* t;
- MallocT(&t, 1);
+ OTTDThread* t = MallocT<OTTDThread>(1);
if (t == NULL) return NULL;
@@ -123,8 +121,7 @@ static DWORD WINAPI Proxy(LPVOID arg)
OTTDThread* OTTDCreateThread(OTTDThreadFunc function, void* arg)
{
- OTTDThread* t;
- MallocT(&t, 1);
+ OTTDThread* t = MallocT<OTTDThread>(1);
DWORD dwThreadId;
if (t == NULL) return NULL;
diff --git a/src/town_gui.cpp b/src/town_gui.cpp
index 56084b3b2..51894dfd4 100644
--- a/src/town_gui.cpp
+++ b/src/town_gui.cpp
@@ -410,7 +410,7 @@ static void MakeSortedTownList(void)
uint n = 0;
/* Create array for sorting */
- ReallocT(&_town_sort, GetMaxTownIndex() + 1);
+ _town_sort = ReallocT(_town_sort, GetMaxTownIndex() + 1);
if (_town_sort == NULL) error("Could not allocate memory for the town-sorting-list");
FOR_ALL_TOWNS(t) _town_sort[n++] = t;
diff --git a/src/unix.cpp b/src/unix.cpp
index ba15b8701..cd32b7631 100644
--- a/src/unix.cpp
+++ b/src/unix.cpp
@@ -169,10 +169,10 @@ void DeterminePaths(void)
{
char *s;
- MallocT(&_paths.game_data_dir, MAX_PATH);
+ _paths.game_data_dir = MallocT<char>(MAX_PATH);
ttd_strlcpy(_paths.game_data_dir, GAME_DATA_DIR, MAX_PATH);
#if defined SECOND_DATA_DIR
- MallocT(&_paths.second_data_dir, MAX_PATH);
+ _paths.second_data_dir = MallocT<char>(MAX_PATH);
ttd_strlcpy(_paths.second_data_dir, SECOND_DATA_DIR, MAX_PATH);
#endif
@@ -190,7 +190,7 @@ void DeterminePaths(void)
#else /* not defined(USE_HOMEDIR) */
- MallocT(&_paths.personal_dir, MAX_PATH);
+ _paths.personal_dir = MallocT<char>(MAX_PATH);
ttd_strlcpy(_paths.personal_dir, PERSONAL_DIR, MAX_PATH);
// check if absolute or relative path
@@ -226,7 +226,7 @@ void DeterminePaths(void)
#if defined CUSTOM_LANG_DIR
// sets the search path for lng files to the custom one
- MallocT(&_paths.lang_dir, MAX_PATH );
+ _paths.lang_dir = MallocT<char>(MAX_PATH);
ttd_strlcpy( _paths.lang_dir, CUSTOM_LANG_DIR, MAX_PATH);
#else
_paths.lang_dir = str_fmt("%slang/", _paths.game_data_dir);
diff --git a/src/vehicle.cpp b/src/vehicle.cpp
index 8a0b47588..6e5b08160 100644
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -2259,7 +2259,7 @@ static int32 MaybeReplaceVehicle(Vehicle *v, bool check, bool display_costs)
static inline void ExtendVehicleListSize(const Vehicle ***engine_list, uint16 *engine_list_length, uint16 step_size)
{
*engine_list_length = min(*engine_list_length + step_size, GetMaxVehicleIndex() + 1);
- ReallocT((Vehicle ***)/* NO & */engine_list, *engine_list_length);
+ *engine_list = ReallocT(*engine_list, *engine_list_length);
}
/** Generates a list of vehicles inside a depot
@@ -2436,7 +2436,7 @@ uint GenerateVehicleSortList(const Vehicle ***sort_list, uint16 *length_of_array
* We will still make it have room for 50 extra vehicles to prevent having
* to move the whole array if just one vehicle is added later */
*length_of_array = n + 50;
- ReallocT((Vehicle***)/* NO & */sort_list, (*length_of_array) * sizeof((*sort_list)[0]));
+ *sort_list = ReallocT(*sort_list, (*length_of_array) * sizeof((*sort_list)[0]));
}
return n;
@@ -2781,7 +2781,7 @@ UnitID GetFreeUnitNumber(byte type)
if (max > gmax) {
gmax = max;
free(cache);
- MallocT(&cache, max + 1);
+ cache = MallocT<bool>(max + 1);
}
// Clear the cache
diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp
index 55dd412ec..7db4ee1c6 100644
--- a/src/vehicle_gui.cpp
+++ b/src/vehicle_gui.cpp
@@ -207,10 +207,8 @@ typedef struct RefitList {
static RefitList *BuildRefitList(const Vehicle *v)
{
uint max_lines = 256;
- RefitOption *refit;
- CallocT(&refit, max_lines);
- RefitList *list;
- CallocT(&list, 1);
+ RefitOption *refit = CallocT<RefitOption>(max_lines);
+ RefitList *list = CallocT<RefitList>(1);
Vehicle *u = (Vehicle*)v;
uint num_lines = 0;
uint i;
diff --git a/src/win32.cpp b/src/win32.cpp
index 423581467..b41204a9d 100644
--- a/src/win32.cpp
+++ b/src/win32.cpp
@@ -636,7 +636,7 @@ static inline DIR *dir_calloc(void)
DIR *d;
if (_global_dir_is_in_use) {
- CallocT(&d, 1);
+ d = CallocT<DIR>(1);
} else {
_global_dir_is_in_use = true;
d = &_global_dir;
diff --git a/src/window.cpp b/src/window.cpp
index 583876ecf..7977bed0c 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -544,7 +544,7 @@ void AssignWidgetToWindow(Window *w, const Widget *widget)
for (wi = widget; wi->type != WWT_LAST; wi++) index++;
- ReallocT(&w->widget, index);
+ w->widget = ReallocT(w->widget, index);
memcpy(w->widget, widget, sizeof(*w->widget) * index);
w->widget_count = index - 1;
} else {