diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-09-16 01:14:56 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-09-16 01:14:56 +0000 |
commit | 43be7b67c88c35f2de822a54ada0e75dfdea6f2d (patch) | |
tree | 470fdac13550cd0bf54b08798a3cc5aa94655e84 | |
parent | e0976d1a6d3b6ce7c24d66831124e0a166d34de5 (diff) | |
download | ruby-43be7b67c88c35f2de822a54ada0e75dfdea6f2d.tar.gz |
* README.EXT, README.EXT.ja (rb_protect, rb_jump_tag): added.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24945 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | README.EXT | 15 | ||||
-rw-r--r-- | README.EXT.ja | 12 |
3 files changed, 30 insertions, 1 deletions
@@ -1,3 +1,7 @@ +Wed Sep 16 10:14:54 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * README.EXT, README.EXT.ja (rb_protect, rb_jump_tag): added. + Wed Sep 16 10:12:56 2009 Nobuyoshi Nakada <nobu@ruby-lang.org> * common.mk (main): makes also encs. diff --git a/README.EXT b/README.EXT index 75f52f71c5..9917d1b496 100644 --- a/README.EXT +++ b/README.EXT @@ -1194,7 +1194,20 @@ exception occurs, from func2 otherwise. Calls the function func1 with arg1 as the argument, then calls func2 with arg2 if execution terminated. The return value from -rb_ensure() is that of func1. +rb_ensure() is that of func1 when no exception occured. + + VALUE rb_protect(VALUE (*func) (VALUE), VALUE arg, int *state) + +Calls the function func with arg as the argument. If no exception +occured during func, it returns the result of func and *state is zero. +Otherwise, it returns Qnil and sets *state to nonzero. If state is +NULL, it is not set in both cases. + + void rb_jump_tag(int state) + +Continues the exception caught by rb_protect() and rb_eval_string_protect(). +state must be the returned value from those functions. This function +never return to the caller. ** Exceptions and Errors diff --git a/README.EXT.ja b/README.EXT.ja index c6b5dfed9f..8cb9179770 100644 --- a/README.EXT.ja +++ b/README.EXT.ja @@ -1292,6 +1292,18 @@ VALUE rb_ensure(VALUE (*func1)(), VALUE arg1, void (*func2)(), VALUE arg2) 発生しても) func2をarg2を引数として実行する.戻り値はfunc1 の戻り値である(例外が発生した時は戻らない). +VALUE rb_protect(VALUE (*func) (VALUE), VALUE arg, int *state) + + 関数funcをargを引数として実行し, 例外が発生しなければその戻 + り値を返す.例外が発生した場合は, *stateに非0をセットして + Qnilを返す. + +void rb_jump_tag(int state) + + rb_protect()やrb_eval_string_protect()で捕捉された例外を再 + 送する.stateはそれらの関数から返された値でなければならない. + この関数は直接の呼び出し元に戻らない. + ** 例外・エラー void rb_warning(const char *fmt, ...) |