return;
}
+/*--------------------------------------------------------------------*/
+void
+ Debug_ObjectInfo_Print_ObjectFile(
+ LibGoblin_ObjectInfo *p_obj,
+ char *pstr_space,
+ Byte b_level )
+{
+ printf(" %s\t\t[OBJINFO] Addr.Link(%3d <-> %3d)\n",
+ pstr_space, p_obj->addrlink.i_prev_id, p_obj->addrlink.i_next_id );
+
+ return;
+}
+
/*====================================================================*/
/*--------------------------------------------------------------------*/
break;
case OBJINFO_TYPE_OBJFILE:
+ Debug_ObjectInfo_Print_ObjectFile( p_obj, pstr_space, b_level );
break;
case OBJINFO_TYPE_FUNCTION:
if(( p_objnow->addr.ptr_addr.value <= ptr_value )
&& ( (ptr_value + qw_size) <= (p_objnow->addr.ptr_addr.value + p_objnow->addr.qw_size)
&& ( ptr_value < (p_objnow->addr.ptr_addr.value + p_objnow->addr.qw_size)) )) {
- if( p_objnow->addr.qw_size <= p_objover->addr.qw_size ) { p_objover = p_objnow; }
+
+ if(( ptr_value == p_objnow->addr.ptr_addr.value )
+ && ( qw_size == p_objnow->addr.qw_size )) {
+ if( b_type >= p_objnow->b_type ) {
+ if( p_objnow->addr.qw_size <= p_objover->addr.qw_size ) {
+ p_objover = p_objnow;
+ }
+ }
+ }
+ else {
+ if( p_objnow->addr.qw_size <= p_objover->addr.qw_size ) {
+ p_objover = p_objnow;
+ }
+ }
}
if( ptr_value == p_objnow->addr.ptr_addr.value ) {
if( qw_size > p_objnow->addr.qw_size ) { break; }
//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
-/*
+
else if( qw_size == p_objnow->addr.qw_size ) {
- if( b_type < p_objnow->b_type ) { p_objover = p_objnow; }
+ if( b_type < p_objnow->b_type ) {
+ //printf( "now: %d , obj= %d, over=%d\n", p_objnow->i_id, p_objinfo->i_id, p_objover->i_id );
+ //p_objover = p_objnow;
+ break;
+ }
}
-*/
+
//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
}
else if( ptr_value < p_objnow->addr.ptr_addr.value ) { break; }
if( NULL != p_objnow ) { p_objnow->addrlink.i_prev_id = p_objinfo->i_id; }
+
// Search ObjectInfo Inset Location. (Group Order) *****************
// Set Group Order Link Info. --------------------------------------
if( OBJINFO_INSETMODE_INSET == ( OBJINFO_INSETMODE_INSET & b_mode )) {
do {
if( ptr_value == p_objnow->addr.ptr_addr.value ) {
if( qw_size > p_objnow->addr.qw_size ) { break; }
+//VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
+
+ else if( qw_size == p_objnow->addr.qw_size ) {
+ //printf( "now: %d <> %d\n", p_objnow->i_id, p_objinfo->i_id );
+ if( b_type < p_objnow->b_type ) {
+ //p_objover = p_objnow;
+ break;
+ }
+ }
+
+//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
}
else if( ptr_value < p_objnow->addr.ptr_addr.value ) { break; }