fix logger name handling

svn: r10823
This commit is contained in:
Matthew Flatt 2008-07-17 17:41:05 +00:00
parent a14a6d7272
commit 04af3c8f01
2 changed files with 8 additions and 3 deletions

View File

@ -11,6 +11,8 @@
(test #t log-receiver? (make-log-receiver (current-logger) 'error)) (test #t log-receiver? (make-log-receiver (current-logger) 'error))
(test #f log-receiver? (current-logger)) (test #f log-receiver? (current-logger))
(test #f logger-name (make-logger))
(arity-test make-logger 0 2) (arity-test make-logger 0 2)
; -------------------- ; --------------------

View File

@ -608,7 +608,7 @@ void scheme_init_error(Scheme_Env *env)
scheme_add_global_constant("make-logger", scheme_add_global_constant("make-logger",
scheme_make_noncm_prim(make_logger, scheme_make_noncm_prim(make_logger,
"make-logger", "make-logger",
1, 2), 0, 2),
env); env);
scheme_add_global_constant("logger?", scheme_add_global_constant("logger?",
scheme_make_folding_prim(logger_p, scheme_make_folding_prim(logger_p,
@ -2987,7 +2987,7 @@ make_logger(int argc, Scheme_Object *argv[])
return (Scheme_Object *)make_a_logger(parent, return (Scheme_Object *)make_a_logger(parent,
(argc (argc
? (SCHEME_FALSEP(argv[1]) ? NULL : argv[1]) ? (SCHEME_FALSEP(argv[0]) ? NULL : argv[0])
: NULL)); : NULL));
} }
@ -3031,10 +3031,13 @@ current_logger(int argc, Scheme_Object *argv[])
static Scheme_Object * static Scheme_Object *
logger_name(int argc, Scheme_Object *argv[]) logger_name(int argc, Scheme_Object *argv[])
{ {
Scheme_Object *name;
if (!SAME_TYPE(SCHEME_TYPE(argv[0]), scheme_logger_type)) if (!SAME_TYPE(SCHEME_TYPE(argv[0]), scheme_logger_type))
scheme_wrong_type("logger-name", "logger", 0, argc, argv); scheme_wrong_type("logger-name", "logger", 0, argc, argv);
return ((Scheme_Logger *)argv[0])->name; name = ((Scheme_Logger *)argv[0])->name;
return (name ? name : scheme_false);
} }
static Scheme_Object * static Scheme_Object *