* sigproc.h (sigframe::set): Accept a default frame pointer.
* sigproc.cc (sig_send): Use passed in frame pointer, if appropriate.
This commit is contained in:
		@@ -1,3 +1,8 @@
 | 
			
		||||
Fri May 26 02:23:35 2000  Christopher Faylor <cgf@cygnus.com>
 | 
			
		||||
 | 
			
		||||
	* sigproc.h (sigframe::set): Accept a default frame pointer.
 | 
			
		||||
	* sigproc.cc (sig_send): Use passed in frame pointer, if appropriate.
 | 
			
		||||
 | 
			
		||||
Thu May 25 17:44:25 2000  Christopher Faylor <cgf@cygnus.com>
 | 
			
		||||
 | 
			
		||||
	* dir.cc (rmdir): Use file attributes that have already been discovered
 | 
			
		||||
 
 | 
			
		||||
@@ -755,7 +755,7 @@ sig_send (pinfo *p, int sig, DWORD ebp)
 | 
			
		||||
	{
 | 
			
		||||
	  thiscatch = sigcatch_main;
 | 
			
		||||
	  thiscomplete = sigcomplete_main;
 | 
			
		||||
	  thisframe.set (mainthread);
 | 
			
		||||
	  thisframe.set (mainthread, 1, ebp);
 | 
			
		||||
	}
 | 
			
		||||
    }
 | 
			
		||||
  else if (!(thiscatch = getsem (p, "sigcatch", 0, 0)))
 | 
			
		||||
 
 | 
			
		||||
@@ -49,12 +49,15 @@ private:
 | 
			
		||||
  sigthread *st;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  void set (sigthread &t, int up = 1)
 | 
			
		||||
  void set (sigthread &t, int up = 1, DWORD ebp = 0)
 | 
			
		||||
  {
 | 
			
		||||
    t.lock->acquire ();
 | 
			
		||||
    st = &t;
 | 
			
		||||
    t.frame = (DWORD) (up ? __builtin_frame_address (1) :
 | 
			
		||||
			   __builtin_frame_address (0));
 | 
			
		||||
    if (ebp)
 | 
			
		||||
      t.frame = ebp;
 | 
			
		||||
    else
 | 
			
		||||
      t.frame = (DWORD) (up ? __builtin_frame_address (1) :
 | 
			
		||||
			     __builtin_frame_address (0));
 | 
			
		||||
    t.lock->release ();
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user