History

DisVM will now only use 0 initialized memory. - The alloc_memory function will only return 0 initialize memory - calloc_memory was removed

Floating point division is now relying on underlying FPU and IEEE for behavior with respect to divide by 0

arr committed 9 years ago

Commit b92328e1 parent bd1f49311 files · +48 −112Browse files

Showing the changes to src/vm/thread.cpp (1 of 11 files). Show all

Unified · Split

src/vm/thread.cpp+4−3
@@ -255,7 +255,7 @@ vm_thread_state_t vm_thread_t::execute(vm_t &vm, const uint32_t quanta) · 254 unmodified lines
255255 }
256256 catch (const unhandled_user_exception &uue)
257257 {
258− _error_message = calloc_memory<char>(max_error_message);
258+ _error_message = alloc_memory<char>(max_error_message);
259259 const int ec = std::snprintf(_error_message, max_error_message, "%s in %s @%d\n %s", uue.what(), uue.module_name, uue.program_counter, uue.exception_id);
260260 assert(ec > 0 && ec < max_error_message);
261261 (void)ec;
@@ -263,7 +263,7 @@ vm_thread_state_t vm_thread_t::execute(vm_t &vm, const uint32_t quanta) · 1 unmodified line
263263 }
264264 catch (const index_out_of_range_memory &ioor)
265265 {
266− _error_message = calloc_memory<char>(max_error_message);
266+ _error_message = alloc_memory<char>(max_error_message);
267267 const int ec = std::snprintf(_error_message, max_error_message, "%s - %d [%d,%d]", ioor.what(), ioor.invalid_value, ioor.valid_min, ioor.valid_max);
268268 assert(ec > 0 && ec < max_error_message);
269269 (void)ec;
@@ -271,7 +271,8 @@ vm_thread_state_t vm_thread_t::execute(vm_t &vm, const uint32_t quanta) · 1 unmodified line
271271 }
272272 catch (const vm_user_exception &ue)
273273 {
274− _error_message = calloc_memory<char>(max_error_message);
274+ // [TODO] Include the module and IP to aid in debugging.
275+ _error_message = alloc_memory<char>(max_error_message);
275276 const int ec = std::snprintf(_error_message, max_error_message, "%s", ue.what());
276277 assert(ec > 0 && ec < max_error_message);
277278 (void)ec;