mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
mruby.h: add MRB_OPEN_FAILURE() macro and refactor MRB_OPEN_SUCCESS()
since all current uses check for failure (!MRB_OPEN_SUCCESS), add MRB_OPEN_FAILURE() as the primary macro for better readability. define MRB_OPEN_SUCCESS() in terms of MRB_OPEN_FAILURE() to avoid duplication and optimize the common case. update all usage sites to use the clearer MRB_OPEN_FAILURE() form. Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
+15
-5
@@ -1271,18 +1271,18 @@ MRB_API void mrb_close(mrb_state *mrb);
|
||||
MRB_API void mrb_method_cache_clear(mrb_state *mrb);
|
||||
|
||||
/**
|
||||
* Check if mrb_open() succeeded
|
||||
* Check if mrb_open() failed
|
||||
*
|
||||
* @param mrb
|
||||
* Pointer returned from mrb_open() or mrb_open_core().
|
||||
* @return
|
||||
* Non-zero if initialization succeeded, 0 if failed.
|
||||
* Non-zero if initialization failed, 0 if succeeded.
|
||||
* @note
|
||||
* mrb_open() may return non-NULL even on failure (with mrb->exc set).
|
||||
* Use this macro to check for success:
|
||||
* Use this macro to check for failure:
|
||||
* @code
|
||||
* mrb_state *mrb = mrb_open();
|
||||
* if (!MRB_OPEN_SUCCESS(mrb)) {
|
||||
* if (MRB_OPEN_FAILURE(mrb)) {
|
||||
* if (mrb) {
|
||||
* // Inspect mrb->exc for error details
|
||||
* mrb_close(mrb);
|
||||
@@ -1291,7 +1291,17 @@ MRB_API void mrb_method_cache_clear(mrb_state *mrb);
|
||||
* }
|
||||
* @endcode
|
||||
*/
|
||||
#define MRB_OPEN_SUCCESS(mrb) ((mrb) && !(mrb)->exc)
|
||||
#define MRB_OPEN_FAILURE(mrb) (!(mrb) || (mrb)->exc)
|
||||
|
||||
/**
|
||||
* Check if mrb_open() succeeded
|
||||
*
|
||||
* @param mrb
|
||||
* Pointer returned from mrb_open() or mrb_open_core().
|
||||
* @return
|
||||
* Non-zero if initialization succeeded, 0 if failed.
|
||||
*/
|
||||
#define MRB_OPEN_SUCCESS(mrb) (!MRB_OPEN_FAILURE(mrb))
|
||||
|
||||
/**
|
||||
* The memory allocation function. You can redefine this function for your own allocator.
|
||||
|
||||
@@ -673,7 +673,7 @@ main(int argc, char **argv)
|
||||
|
||||
l_restart:
|
||||
|
||||
if (!MRB_OPEN_SUCCESS(mrb)) {
|
||||
if (MRB_OPEN_FAILURE(mrb)) {
|
||||
mrb_print_error(mrb); /* handles NULL */
|
||||
mrb_close(mrb); /* handles NULL */
|
||||
return EXIT_FAILURE;
|
||||
|
||||
@@ -475,7 +475,7 @@ main(int argc, char **argv)
|
||||
|
||||
/* new interpreter instance */
|
||||
mrb = mrb_open();
|
||||
if (!MRB_OPEN_SUCCESS(mrb)) {
|
||||
if (MRB_OPEN_FAILURE(mrb)) {
|
||||
mrb_print_error(mrb); /* handles NULL */
|
||||
mrb_close(mrb); /* handles NULL */
|
||||
return EXIT_FAILURE;
|
||||
|
||||
@@ -282,7 +282,7 @@ main(int argc, char **argv)
|
||||
mrb_value ARGV;
|
||||
mrb_value v;
|
||||
|
||||
if (!MRB_OPEN_SUCCESS(mrb)) {
|
||||
if (MRB_OPEN_FAILURE(mrb)) {
|
||||
mrb_print_error(mrb); /* handles NULL */
|
||||
mrb_close(mrb); /* handles NULL */
|
||||
return EXIT_FAILURE;
|
||||
|
||||
@@ -290,7 +290,7 @@ main(int argc, char **argv)
|
||||
|
||||
/* new interpreter instance */
|
||||
mrb = mrb_open();
|
||||
if (!MRB_OPEN_SUCCESS(mrb)) {
|
||||
if (MRB_OPEN_FAILURE(mrb)) {
|
||||
mrb_print_error(mrb); /* handles NULL */
|
||||
mrb_close(mrb); /* handles NULL */
|
||||
return EXIT_FAILURE;
|
||||
|
||||
Reference in New Issue
Block a user