aboutsummaryrefslogtreecommitdiff
path: root/src/rt/rust.cpp
diff options
context:
space:
mode:
authorMichael Bebenita <[email protected]>2010-08-16 14:13:08 -0700
committerMichael Bebenita <[email protected]>2010-08-16 15:05:57 -0700
commitb40a9fa787dd3b7d979cdf3e156284d6667fe9d2 (patch)
tree27b18e7280feed3adc368a0d98053f84d4fe2215 /src/rt/rust.cpp
parentAbsent any deep overhauls to syntax or constant-handling, hack in the ability... (diff)
downloadrust-b40a9fa787dd3b7d979cdf3e156284d6667fe9d2.tar.xz
rust-b40a9fa787dd3b7d979cdf3e156284d6667fe9d2.zip
Pulled rust_srv in its own file. Some cleanup, and added varargs to assertion macros.
Diffstat (limited to 'src/rt/rust.cpp')
-rw-r--r--src/rt/rust.cpp105
1 files changed, 0 insertions, 105 deletions
diff --git a/src/rt/rust.cpp b/src/rt/rust.cpp
index d0215edc..905b0c8a 100644
--- a/src/rt/rust.cpp
+++ b/src/rt/rust.cpp
@@ -1,110 +1,5 @@
#include "rust_internal.h"
-#define TRACK_ALLOCATIONS
-
-rust_srv::rust_srv() :
- live_allocs(0)
-{
-}
-
-rust_srv::~rust_srv()
-{
- if (live_allocs != 0) {
- char msg[128];
- snprintf(msg, sizeof(msg),
- "leaked memory in rust main loop (%" PRIuPTR " objects)",
- live_allocs);
-#ifdef TRACK_ALLOCATIONS
- for (size_t i = 0; i < allocation_list.size(); i++) {
- if (allocation_list[i] != NULL) {
- printf("allocation 0x%" PRIxPTR " was not freed\n",
- (uintptr_t) allocation_list[i]);
- }
- }
-#endif
- fatal(msg, __FILE__, __LINE__);
- }
-}
-
-void
-rust_srv::log(char const *str)
-{
- printf("rt: %s\n", str);
-}
-
-
-
-void *
-rust_srv::malloc(size_t bytes)
-{
- ++live_allocs;
- void * val = ::malloc(bytes);
-#ifdef TRACK_ALLOCATIONS
- allocation_list.append(val);
-#endif
- return val;
-}
-
-void *
-rust_srv::realloc(void *p, size_t bytes)
-{
- if (!p) {
- live_allocs++;
- }
- void * val = ::realloc(p, bytes);
-#ifdef TRACK_ALLOCATIONS
- if (allocation_list.replace(p, val) == false) {
- printf("realloc: ptr 0x%" PRIxPTR " is not in allocation_list\n",
- (uintptr_t) p);
- fatal("not in allocation_list", __FILE__, __LINE__);
- }
-#endif
- return val;
-}
-
-void
-rust_srv::free(void *p)
-{
-#ifdef TRACK_ALLOCATIONS
- if (allocation_list.replace(p, NULL) == false) {
- printf("free: ptr 0x%" PRIxPTR " is not in allocation_list\n",
- (uintptr_t) p);
- fatal("not in allocation_list", __FILE__, __LINE__);
- }
-#endif
- if (live_allocs < 1) {
- fatal("live_allocs < 1", __FILE__, __LINE__);
- }
- live_allocs--;
- ::free(p);
-}
-
-void
-rust_srv::fatal(char const *expr, char const *file, size_t line)
-{
- char buf[1024];
- snprintf(buf, sizeof(buf),
- "fatal, '%s' failed, %s:%d",
- expr, file, (int)line);
- log(buf);
- exit(1);
-}
-
-void
-rust_srv::warning(char const *expr, char const *file, size_t line)
-{
- char buf[1024];
- snprintf(buf, sizeof(buf),
- "warning: '%s', at: %s:%d",
- expr, file, (int)line);
- log(buf);
-}
-
-rust_srv *
-rust_srv::clone()
-{
- return new rust_srv();
-}
struct
command_line_args