comparison src/lread.c @ 68301:581e383fb47c

(Fload): Don't leak the file descriptor returned by openp if we are going to signal an error.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 20 Jan 2006 19:53:36 +0000
parents 28939487a2d5
children 70566c3d72b1 9b150bc96d33 5b7d410e31f9
comparison
equal deleted inserted replaced
68300:f283791acd64 68301:581e383fb47c
799 Lisp_Object tem; 799 Lisp_Object tem;
800 for (tem = Vloads_in_progress; CONSP (tem); tem = XCDR (tem)) 800 for (tem = Vloads_in_progress; CONSP (tem); tem = XCDR (tem))
801 if (!NILP (Fequal (found, XCAR (tem)))) 801 if (!NILP (Fequal (found, XCAR (tem))))
802 count++; 802 count++;
803 if (count > 3) 803 if (count > 3)
804 Fsignal (Qerror, Fcons (build_string ("Recursive load"), 804 {
805 Fcons (found, Vloads_in_progress))); 805 if (fd >= 0)
806 emacs_close (fd);
807 Fsignal (Qerror, Fcons (build_string ("Recursive load"),
808 Fcons (found, Vloads_in_progress)));
809 }
806 record_unwind_protect (record_load_unwind, Vloads_in_progress); 810 record_unwind_protect (record_load_unwind, Vloads_in_progress);
807 Vloads_in_progress = Fcons (found, Vloads_in_progress); 811 Vloads_in_progress = Fcons (found, Vloads_in_progress);
808 } 812 }
809 813
810 if (!bcmp (SDATA (found) + SBYTES (found) - 4, 814 if (!bcmp (SDATA (found) + SBYTES (found) - 4,