History

Create specific exception when index is out of range. Update thread class to print out exception details. Throw exception when an invalid op-code is detected. Enforce mspawn instruction cannot start from a built-in module.

arr committed 10 years ago

Commit 266fad61 parent 9af409310 files · +63 −40Browse files

Showing the changes to src/include/exceptions.h (1 of 10 files). Show all

Unified · Split

src/include/exceptions.h+9−12
@@ -60,7 +60,7 @@ namespace disvm · 59 unmodified lines
60 { }60 { }
61 };61 };
62 62
63 class invalid_utf8 : public vm_user_exception63 class invalid_utf8 final : public vm_user_exception
64 {64 {
65 public:65 public:
66 explicit invalid_utf8()66 explicit invalid_utf8()
@@ -84,7 +84,7 @@ namespace disvm · 17 unmodified lines
84 const char *operation;84 const char *operation;
85 };85 };
86 86
87 class type_violation : public vm_user_exception87 class type_violation final : public vm_user_exception
88 {88 {
89 public:89 public:
90 explicit type_violation()90 explicit type_violation()
@@ -92,26 +92,23 @@ namespace disvm · 1 unmodified line
92 { }92 { }
93 };93 };
94 94
95 class out_of_range_memory final : public vm_user_exception95 class out_of_range_memory : public vm_user_exception
96 {96 {
97 public:97 public:
98 explicit out_of_range_memory()98 explicit out_of_range_memory()
99 : vm_user_exception("Out of range access")99 : vm_user_exception("Out of range access")
100 , invalid_value{ 0 }
101 , range_defined{ false }
102 , valid_max{ 0 }
103 , valid_min{ 0 }
104 { }100 { }
101 };
105 102
106 explicit out_of_range_memory(word_t valid_min, word_t valid_max, word_t invalid_valid)103 class index_out_of_range_memory final : public out_of_range_memory
107 : vm_user_exception("Out of range access")104 {
108 , invalid_value{ invalid_valid }105 public:
109 , range_defined{ true }106 explicit index_out_of_range_memory(word_t valid_min, word_t valid_max, word_t invalid_value)
107 : invalid_value{ invalid_value }
110 , valid_max{ valid_max }108 , valid_max{ valid_max }
111 , valid_min{ valid_min }109 , valid_min{ valid_min }
112 { }110 { }
113 111
114 const bool range_defined;
115 const word_t valid_min;112 const word_t valid_min;
116 const word_t valid_max;113 const word_t valid_max;
117 const word_t invalid_value;114 const word_t invalid_value;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t