diff options
| author | Jacob Palecki <[email protected]> | 2021-01-20 19:09:18 -0800 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2021-01-20 19:09:18 -0800 |
| commit | 6311b5679ea75c58b362332c58d526a931e24a66 (patch) | |
| tree | 60dd7c67a0f163457da2519b42553382a39a591b /wrapper | |
| parent | Bump version to 1.4 (diff) | |
| download | rawaccel-6311b5679ea75c58b362332c58d526a931e24a66.tar.xz rawaccel-6311b5679ea75c58b362332c58d526a931e24a66.zip | |
Guard against bad anisotropy args
Diffstat (limited to 'wrapper')
| -rw-r--r-- | wrapper/wrapper.cpp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/wrapper/wrapper.cpp b/wrapper/wrapper.cpp index 7fd0a92..46e7e3a 100644 --- a/wrapper/wrapper.cpp +++ b/wrapper/wrapper.cpp @@ -197,16 +197,40 @@ error_list_t^ get_accel_errors(AccelMode mode, AccelArgs^ args) return error_list; } +error_list_t^ get_other_errors(DriverSettings^ settings) +{ + auto error_list = gcnew error_list_t(); + + if (settings->rangeXY.x <= 0 || settings->rangeXY.y <= 0) + { + error_list->Add("range values must be positive"); + } + + if (settings->domainArgs.domainXY.x <= 0 || settings->domainArgs.domainXY.y <= 0) + { + error_list->Add("domain values must be positive"); + } + + if (settings->domainArgs.lpNorm <= 0) + { + error_list->Add("lp norm must be positive"); + } + + return error_list; +} + public ref class SettingsErrors { public: error_list_t^ x; error_list_t^ y; + error_list_t^ other; bool Empty() { return (x == nullptr || x->Count == 0) && - (y == nullptr || y->Count == 0); + (y == nullptr || y->Count == 0) && + (other == nullptr || other->Count == 0); } virtual String^ ToString() override @@ -233,6 +257,11 @@ public: sb->AppendFormat("y: {0}\n", str); } } + + for each (String ^ str in other) + { + sb->AppendLine(str); + } return sb->ToString(); } @@ -286,9 +315,13 @@ public ref struct DriverInterop errors->y = get_accel_errors(args->modes.y, args->args.y); } + errors->other = get_other_errors(args); + return errors; } + + static error_list_t^ GetAccelErrors(AccelMode mode, AccelArgs^ args) { return get_accel_errors(mode, args); |