comparison src/eval.c @ 1111:184461bc8de4

[xemacs-hg @ 2002-11-18 06:52:23 by ben] warning fixes, etc. * s/cygwin32.h: -fvtable-thunks is obsolete in GCC 3 and generates warnings. * s/mingw32.h: * s/windowsnt.h: Comment fixes. * emodules.h: Fix warnings from redefining symbols. * eval.c: Fix C++ errors -- no automatic casting between function pointers and void *, function declarations inside of functions not allowed. * event-Xt.c (emacs_Xt_enqueue_focus_event): Warning fixes. * fileio.c (Ffile_truename): Warning fixes. Use LOCAL_TO_WIN32_FILE_FORMAT rather than duplicating it. * glyphs-x.c: Fix style. * intl-auto-encap-win32.c: * intl-auto-encap-win32.h: * intl-encap-win32.c: * intl-encap-win32.c (qxeRegConnectRegistry): * syswindows.h (RegConnectRegistry): DdeCreateStringHandle needs to be manual due to new Cygwin bug. * intl-win32.c: wcslen/wcscmp don't seem to exist under G++ 3, Cygwin. * lisp.h: * lisp-union.h: * lisp-disunion.h: * process-unix.c (unix_send_process): Ugh, C needs volatile and C++ must not have volatile. Remove previous volatile hacks, which don't seem to be working any more. * sheap.c (STATIC_HEAP_SLOP): Try to get a working Cygwin build with old unexec. * sheap.c (more_static_core): No NL's in literals allowed. * symbols.c (Fset): Fix C++ errors. * syswindows.h: Fix Cygwin complaints now that some missing structs have been added. aclocal.m4: Disable shared library modules under Cygwin for the moment, since we need some more tricky coding done and I don't have the time right now. configure.in, configure.usage: code-files.el, loadhist.el: Fix warnings. package-get.el: Fix warnings. NOTE: This was already fixed awhile ago, but reverted by Steve Y. Please be careful. postgresql/Makefile.in.in: Removed. Move common stuff into modues/common/Makefile.common. (Also add extraclean target and a couple of other fixes in that file.) postgresql/configure.ac: Extract out common configure stuff into modules/common/configure-{pre,post}.ac. postgresql/postgresql.c: Fix warning. ldap/Makefile.in.in: Removed. Move common stuff into modues/common/Makefile.common. (Also add extraclean target and a couple of other fixes in that file.) ldap/configure.ac: Extract out common configure stuff into modules/common/configure-{pre,post}.ac. common/Makefile.common: Common stuff is here.
author ben
date Mon, 18 Nov 2002 06:53:08 +0000
parents 0dc7756a58c4
children 37bdd24225ef
comparison
equal deleted inserted replaced
1110:49065a0d2943 1111:184461bc8de4
2061 Lisp_Object handler_arg, 2061 Lisp_Object handler_arg,
2062 Lisp_Object (*fun) (Lisp_Object), 2062 Lisp_Object (*fun) (Lisp_Object),
2063 Lisp_Object arg) 2063 Lisp_Object arg)
2064 { 2064 {
2065 /* This function can GC */ 2065 /* This function can GC */
2066 int speccount = specpdl_depth(); 2066 int speccount = specpdl_depth ();
2067 Lisp_Object tem; 2067 Lisp_Object tem;
2068 2068
2069 /* ((handler-fun . (handler-arg . nil)) ... ) */ 2069 /* ((handler-fun . (handler-arg . nil)) ... ) */
2070 tem = noseeum_cons (noseeum_cons (make_opaque_ptr (handler), 2070 tem = noseeum_cons (noseeum_cons (make_opaque_ptr ((void *) handler),
2071 noseeum_cons (handler_arg, Qnil)), 2071 noseeum_cons (handler_arg, Qnil)),
2072 Vcondition_handlers); 2072 Vcondition_handlers);
2073 record_unwind_protect (condition_bind_unwind, tem); 2073 record_unwind_protect (condition_bind_unwind, tem);
2074 Vcondition_handlers = tem; 2074 Vcondition_handlers = tem;
2075 2075
3671 POP_BACKTRACE (backtrace); 3671 POP_BACKTRACE (backtrace);
3672 return val; 3672 return val;
3673 } 3673 }
3674 3674
3675 3675
3676
3677 static void
3678 run_post_gc_hook (void)
3679 {
3680 Lisp_Object args[2];
3681
3682 args[0] = Qpost_gc_hook;
3683 args[1] = Fcons (Fcons (Qfinalize_list, zap_finalize_list ()), Qnil);
3684
3685 run_hook_with_args_trapping_problems
3686 ("Error in post-gc-hook",
3687 2, args,
3688 RUN_HOOKS_TO_COMPLETION,
3689 INHIBIT_QUIT | NO_INHIBIT_ERRORS);
3690 }
3691
3676 DEFUN ("funcall", Ffuncall, 1, MANY, 0, /* 3692 DEFUN ("funcall", Ffuncall, 1, MANY, 0, /*
3677 Call first argument as a function, passing the remaining arguments to it. 3693 Call first argument as a function, passing the remaining arguments to it.
3678 Thus, (funcall 'cons 'x 'y) returns (x . y). 3694 Thus, (funcall 'cons 'x 'y) returns (x . y).
3679 */ 3695 */
3680 (int nargs, Lisp_Object *args)) 3696 (int nargs, Lisp_Object *args))
3701 funcall_alloca_count = 0; 3717 funcall_alloca_count = 0;
3702 } 3718 }
3703 } 3719 }
3704 if (need_to_signal_post_gc) 3720 if (need_to_signal_post_gc)
3705 { 3721 {
3706 static void run_post_gc_hook(void); /* forward */
3707
3708 need_to_signal_post_gc = 0; 3722 need_to_signal_post_gc = 0;
3709 recompute_funcall_allocation_flag(); 3723 recompute_funcall_allocation_flag ();
3710 run_post_gc_hook(); 3724 run_post_gc_hook ();
3711 } 3725 }
3712 } 3726 }
3713 3727
3714 if (++lisp_eval_depth > max_lisp_eval_depth) 3728 if (++lisp_eval_depth > max_lisp_eval_depth)
3715 { 3729 {
5535 RETURN_UNGCPRO (run_hook_with_args_in_buffer_trapping_problems 5549 RETURN_UNGCPRO (run_hook_with_args_in_buffer_trapping_problems
5536 (warning_string, buf, nargs + 1, funcall_args, 5550 (warning_string, buf, nargs + 1, funcall_args,
5537 RUN_HOOKS_TO_COMPLETION, flags)); 5551 RUN_HOOKS_TO_COMPLETION, flags));
5538 } 5552 }
5539 5553
5540 static void
5541 run_post_gc_hook()
5542 {
5543 Lisp_Object args[2];
5544
5545 args[0] = Qpost_gc_hook;
5546 args[1] = Fcons (Fcons (Qfinalize_list, zap_finalize_list()), Qnil);
5547
5548 run_hook_with_args_trapping_problems
5549 ("Error in post-gc-hook",
5550 2, args,
5551 RUN_HOOKS_TO_COMPLETION,
5552 INHIBIT_QUIT | NO_INHIBIT_ERRORS);
5553 }
5554 5554
5555 /************************************************************************/ 5555 /************************************************************************/
5556 /* The special binding stack */ 5556 /* The special binding stack */
5557 /* Most C code should simply use specbind() and unbind_to_1(). */ 5557 /* Most C code should simply use specbind() and unbind_to_1(). */
5558 /* When performance is critical, use the macros in backtrace.h. */ 5558 /* When performance is critical, use the macros in backtrace.h. */