diff --git a/core/AMBuilder b/core/AMBuilder
index 0f2ed3f4..412e990b 100644
--- a/core/AMBuilder
+++ b/core/AMBuilder
@@ -23,7 +23,6 @@ for i in SM.sdkInfo:
'ADTFactory.cpp',
'ForwardSys.cpp',
'MenuVoting.cpp',
- 'sm_memtable.cpp',
'smn_events.cpp',
'smn_menus.cpp',
'sm_trie.cpp',
diff --git a/core/Makefile b/core/Makefile
index 155d4c31..22fcbb79 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -17,7 +17,7 @@ MMSOURCE17 = ../../mmsource-central
OBJECTS = AdminCache.cpp CDataPack.cpp ConCmdManager.cpp ConVarManager.cpp CoreConfig.cpp \
Database.cpp DebugReporter.cpp EventManager.cpp GameConfigs.cpp HalfLife2.cpp Logger.cpp \
PlayerManager.cpp TimerSys.cpp Translator.cpp UserMessages.cpp \
- sm_autonatives.cpp sm_memtable.cpp sm_srvcmds.cpp sm_stringutil.cpp sm_trie.cpp \
+ sm_autonatives.cpp sm_srvcmds.cpp sm_stringutil.cpp sm_trie.cpp \
sourcemm_api.cpp sourcemod.cpp MenuStyle_Base.cpp MenuStyle_Valve.cpp MenuManager.cpp \
MenuStyle_Radio.cpp ChatTriggers.cpp ADTFactory.cpp MenuVoting.cpp \
frame_hooks.cpp concmd_cleaner.cpp PhraseCollection.cpp NextMap.cpp \
diff --git a/core/sm_memtable.cpp b/core/sm_memtable.cpp
deleted file mode 100644
index e13cd891..00000000
--- a/core/sm_memtable.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/**
- * vim: set ts=4 :
- * =============================================================================
- * SourceMod
- * Copyright (C) 2004-2008 AlliedModders LLC. All rights reserved.
- * =============================================================================
- *
- * This program is free software; you can redistribute it and/or modify it under
- * the terms of the GNU General Public License, version 3.0, as published by the
- * Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
- * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
- * details.
- *
- * You should have received a copy of the GNU General Public License along with
- * this program. If not, see .
- *
- * As a special exception, AlliedModders LLC gives you permission to link the
- * code of this program (as well as its derivative works) to "Half-Life 2," the
- * "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software
- * by the Valve Corporation. You must obey the GNU General Public License in
- * all respects for all other code used. Additionally, AlliedModders LLC grants
- * this exception to all derivative works. AlliedModders LLC defines further
- * exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007),
- * or .
- *
- * Version: $Id$
- */
-
-#include
-#include
-#include "sm_memtable.h"
-
-BaseMemTable::BaseMemTable(unsigned int init_size)
-{
- membase = (unsigned char *)malloc(init_size);
- size = init_size;
- tail = 0;
-}
-
-BaseMemTable::~BaseMemTable()
-{
- free(membase);
- membase = NULL;
-}
-
-int BaseMemTable::CreateMem(unsigned int addsize, void **addr)
-{
- int idx = (int)tail;
-
- while (tail + addsize >= size)
- {
- size *= 2;
- membase = (unsigned char *)realloc(membase, size);
- }
-
- tail += addsize;
-
- if (addr)
- {
- *addr = (void *)&membase[idx];
- }
-
- return idx;
-}
-
-void *BaseMemTable::GetAddress(int index)
-{
- if (index < 0 || (unsigned int)index >= tail)
- {
- return NULL;
- }
-
- return &membase[index];
-}
-
-void BaseMemTable::Reset()
-{
- tail = 0;
-}
-
-BaseStringTable::BaseStringTable(unsigned int init_size) : m_table(init_size)
-{
-}
-
-BaseStringTable::~BaseStringTable()
-{
-}
-
-int BaseStringTable::AddString(const char *string)
-{
- size_t len = strlen(string) + 1;
- int idx;
- char *addr;
-
- idx = m_table.CreateMem(len, (void **)&addr);
- strcpy(addr, string);
-
- return idx;
-}
-
-/*const char *BaseStringTable::GetString(int str)
-{
- return (const char *)m_table.GetAddress(str);
-}*/
-
-void BaseStringTable::Reset()
-{
- m_table.Reset();
-}
diff --git a/core/sm_memtable.h b/core/sm_memtable.h
index 2db4c4e6..8789e68e 100644
--- a/core/sm_memtable.h
+++ b/core/sm_memtable.h
@@ -32,31 +32,65 @@
#ifndef _INCLUDE_SOURCEMOD_CORE_STRINGTABLE_H_
#define _INCLUDE_SOURCEMOD_CORE_STRINGTABLE_H_
+#include
+#include
+
class BaseMemTable
{
public:
- BaseMemTable(unsigned int init_size);
- ~BaseMemTable();
+ BaseMemTable(unsigned int init_size)
+ {
+ membase = (unsigned char *)malloc(init_size);
+ size = init_size;
+ tail = 0;
+ }
+ ~BaseMemTable()
+ {
+ free(membase);
+ membase = NULL;
+ }
public:
/**
* Allocates 'size' bytes of memory.
* Optionally outputs the address through 'addr'.
* Returns an index >= 0 on success, < 0 on failure.
*/
- int CreateMem(unsigned int size, void **addr);
+ int CreateMem(unsigned int addsize, void **addr)
+ {
+ int idx = (int)tail;
+
+ while (tail + addsize >= size) {
+ size *= 2;
+ membase = (unsigned char *)realloc(membase, size);
+ }
+
+ tail += addsize;
+ if (addr)
+ *addr = (void *)&membase[idx];
+
+ return idx;
+ }
/**
* Given an index into the memory table, returns its address.
* Returns NULL if invalid.
*/
- void *GetAddress(int index);
+ void *GetAddress(int index)
+ {
+ if (index < 0 || (unsigned int)index >= tail)
+ return NULL;
+ return &membase[index];
+ }
/**
* Scraps the memory table. For caching purposes, the memory
* is not freed, however subsequent calls to CreateMem() will
* begin at the first index again.
*/
- void Reset();
+ void Reset()
+ {
+ tail = 0;
+ }
inline unsigned int GetMemUsage()
{
@@ -77,13 +111,24 @@ private:
class BaseStringTable
{
public:
- BaseStringTable(unsigned int init_size);
- ~BaseStringTable();
+ BaseStringTable(unsigned int init_size) : m_table(init_size)
+ {
+ }
public:
/**
* Adds a string to the string table and returns its index.
*/
- int AddString(const char *string);
+ int AddString(const char *string)
+ {
+ size_t len = strlen(string) + 1;
+ int idx;
+ char *addr;
+
+ idx = m_table.CreateMem(len, (void **)&addr);
+ strcpy(addr, string);
+
+ return idx;
+ }
/**
* Given an index into the string table, returns the associated string.
@@ -98,7 +143,10 @@ public:
* is not freed, however subsequent calls to AddString() will
* begin at the first index again.
*/
- void Reset();
+ void Reset()
+ {
+ m_table.Reset();
+ }
/**
* Returns the parent BaseMemTable that this string table uses.
@@ -112,3 +160,4 @@ private:
};
#endif //_INCLUDE_SOURCEMOD_CORE_STRINGTABLE_H_
+