Commit 29bf6575 authored by unknown's avatar unknown
Browse files

Merge bk-internal:/home/bk/mysql-5.0

into  mysql.com:/data0/knielsen/tmp-5.0

parents bb1c6bf6 167d54cd
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -788,7 +788,8 @@ static void die(const char* fmt, ...)
  fprintf(stderr, "\n");
  va_end(args);
  cleanup();
  my_end(0);
  /* We cannot free DBUG, it is used in global destructors after exit(). */
  my_end(MY_DONT_FREE_DBUG);
  exit(1);
}

@@ -1460,7 +1461,8 @@ int main(int argc, char** argv)
  cleanup();
  free_defaults(defaults_argv);
  my_free_open_file_info();
  my_end(0);
  /* We cannot free DBUG, it is used in global destructors after exit(). */
  my_end(MY_DONT_FREE_DBUG);
  exit(exit_value);
  DBUG_RETURN(exit_value);			// Keep compilers happy
}
+68 −16
Original line number Diff line number Diff line
@@ -271,6 +271,8 @@ static unsigned long Clock (void);
static void CloseFile(FILE *fp);
	/* Push current debug state */
static void PushState(void);
	/* Free memory associated with debug state. */
static void FreeState (struct state *state);
	/* Test for tracing enabled */
static BOOLEAN DoTrace(CODE_STATE *state);
	/* Test to see if file is writable */
@@ -630,22 +632,7 @@ void _db_pop_ ()
    stack = discard -> next_state;
    _db_fp_ = stack -> out_file;
    _db_pfp_ = stack -> prof_file;
    if (discard -> keywords != NULL) {
      FreeList (discard -> keywords);
    }
    if (discard -> functions != NULL) {
      FreeList (discard -> functions);
    }
    if (discard -> processes != NULL) {
      FreeList (discard -> processes);
    }
    if (discard -> p_functions != NULL) {
      FreeList (discard -> p_functions);
    }
    CloseFile (discard -> out_file);
    if (discard -> prof_file)
      CloseFile (discard -> prof_file);
    free ((char *) discard);
    FreeState(discard);
    if (!(stack->flags & DEBUG_ON))
      _db_on_=0;
  }
@@ -1160,6 +1147,71 @@ static void PushState ()
  stack=new_malloc;
}

/*
 *  FUNCTION
 *
 *	FreeState    Free memory associated with a struct state.
 *
 *  SYNOPSIS
 *
 *	static void FreeState (state)
 *	struct state *state;
 *
 *  DESCRIPTION
 *
 *	Deallocates the memory allocated for various information in a
 *	state.
 *
 */
static void FreeState (
struct state *state)
{
  if (state -> keywords != NULL) {
    FreeList (state -> keywords);
  }
  if (state -> functions != NULL) {
    FreeList (state -> functions);
  }
  if (state -> processes != NULL) {
    FreeList (state -> processes);
  }
  if (state -> p_functions != NULL) {
    FreeList (state -> p_functions);
  }
  CloseFile (state -> out_file);
  if (state -> prof_file)
    CloseFile (state -> prof_file);
  free ((char *) state);
}


/*
 *  FUNCTION
 *
 *	_db_end_    End debugging, freeing state stack memory.
 *
 *  SYNOPSIS
 *
 *	static VOID _db_end_ ()
 *
 *  DESCRIPTION
 *
 *	Ends debugging, de-allocating the memory allocated to the
 *	state stack.
 *
 *	To be called at the very end of the program.
 *
 */
void _db_end_ ()
{
  reg1 struct state *discard;
  while((discard= stack) != NULL) {
    stack= discard -> next_state;
    FreeState (discard);
  }
  _db_on_=0;
}


/*
 *  FUNCTION
+3 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ extern void _db_doprnt_ _VARARGS((const char *format,...));
extern	void _db_dump_(uint _line_,const char *keyword,const char *memory,
		       uint length);
extern	void _db_output_(uint flag);
extern	void _db_end_(void);
extern	void _db_lock_file(void);
extern	void _db_unlock_file(void);

@@ -66,6 +67,7 @@ extern void _db_unlock_file(void);
#define DBUG_IN_USE (_db_fp_ && _db_fp_ != stderr)
#define DEBUGGER_OFF _no_db_=1;_db_on_=0;
#define DEBUGGER_ON  _no_db_=0
#define DBUG_END()  _db_end_ ()
#define DBUG_LOCK_FILE { _db_lock_file(); }
#define DBUG_UNLOCK_FILE { _db_unlock_file(); }
#define DBUG_OUTPUT(A) { _db_output_(A); }
@@ -90,6 +92,7 @@ extern void _db_unlock_file(void);
#define DBUG_IN_USE 0
#define DEBUGGER_OFF
#define DEBUGGER_ON
#define DBUG_END()
#define DBUG_LOCK_FILE
#define DBUG_UNLOCK_FILE
#define DBUG_OUTPUT(A)
+1 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ extern int NEAR my_errno; /* Last error in mysys */

#define MY_CHECK_ERROR	1	/* Params to my_end; Check open-close */
#define MY_GIVE_INFO	2	/* Give time info about process*/
#define MY_DONT_FREE_DBUG 4     /* Do not call DBUG_END() in my_end() */

#define ME_HIGHBYTE	8	/* Shift for colours */
#define ME_NOCUR	1	/* Don't use curses message */
+1 −1
Original line number Diff line number Diff line
@@ -178,7 +178,7 @@ void STDCALL mysql_server_end()
  /* If library called my_init(), free memory allocated by it */
  if (!org_my_init_done)
  {
    my_end(0);
    my_end(MY_DONT_FREE_DBUG);
#ifndef THREAD
  /* Remove TRACING, if enabled by mysql_debug() */
    DBUG_POP();
Loading