#107130# missing uno.MethodAttribute.get_Raises()

This commit is contained in:
Daniel Boelzle
2003-04-25 14:14:34 +00:00
parent b426d4671e
commit 7028defdc4
2 changed files with 52 additions and 23 deletions

View File

@@ -2,9 +2,9 @@
*
* $RCSfile: climaker_emit.cxx,v $
*
* $Revision: 1.2 $
* $Revision: 1.3 $
*
* last change: $Author: dbo $ $Date: 2003-04-07 09:40:42 $
* last change: $Author: dbo $ $Date: 2003-04-25 15:14:33 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -635,9 +635,54 @@ ConstructorInfo * TypeEmitter::get_ctor_uno_MethodAttribute()
S"get_Raises", property_method_attr,
__typeof (::System::Type * __gc []), no_params );
code = method_builder->GetILGenerator();
// // xxx todo: complex get_Raises()
code->Emit( Emit::OpCodes::Ldarg_0 );
code->Emit( Emit::OpCodes::Ldfld, field_m_raises );
code->Emit( Emit::OpCodes::Brtrue_S, (::System::Byte) 0x16 );
code->Emit( Emit::OpCodes::Ldc_I4_1 );
code->Emit( Emit::OpCodes::Newarr, __typeof (::System::Type) );
code->Emit( Emit::OpCodes::Stloc_1 );
code->Emit( Emit::OpCodes::Ldloc_1 );
code->Emit( Emit::OpCodes::Ldc_I4_0 );
code->Emit( Emit::OpCodes::Ldtoken, get_type_RuntimeException() );
code->Emit(
Emit::OpCodes::Call, m_method_info_Type_GetTypeFromHandle );
code->Emit( Emit::OpCodes::Stelem_Ref );
code->Emit( Emit::OpCodes::Ldloc_1 );
code->Emit( Emit::OpCodes::Ret );
code->Emit( Emit::OpCodes::Ldarg_0 );
code->Emit( Emit::OpCodes::Ldfld, field_m_raises );
code->Emit( Emit::OpCodes::Ldlen );
code->Emit( Emit::OpCodes::Conv_I4 );
code->Emit( Emit::OpCodes::Ldc_I4_1 );
code->Emit( Emit::OpCodes::Add );
code->Emit( Emit::OpCodes::Conv_Ovf_U4 );
code->Emit( Emit::OpCodes::Newarr, __typeof (::System::Type) );
code->Emit( Emit::OpCodes::Stloc_0 );
code->Emit( Emit::OpCodes::Ldarg_0 );
code->Emit( Emit::OpCodes::Ldfld, field_m_raises );
code->Emit( Emit::OpCodes::Ldloc_0 );
code->Emit( Emit::OpCodes::Ldarg_0 );
code->Emit( Emit::OpCodes::Ldfld, field_m_raises );
code->Emit( Emit::OpCodes::Ldlen );
code->Emit( Emit::OpCodes::Conv_I4 );
param_types = new ::System::Type * __gc [ 3 ];
param_types[ 0 ] = __typeof (::System::Array);
param_types[ 1 ] = __typeof (::System::Array);
param_types[ 2 ] = __typeof (::System::Int32);
code->Emit(
Emit::OpCodes::Call,
__typeof (::System::Array)->GetMethod( "Copy", param_types ) );
code->Emit( Emit::OpCodes::Ldloc_0 );
code->Emit( Emit::OpCodes::Ldarg_0 );
code->Emit( Emit::OpCodes::Ldfld, field_m_raises );
code->Emit( Emit::OpCodes::Ldlen );
code->Emit( Emit::OpCodes::Conv_I4 );
code->Emit( Emit::OpCodes::Ldtoken, get_type_RuntimeException() );
code->Emit(
Emit::OpCodes::Call, m_method_info_Type_GetTypeFromHandle );
code->Emit( Emit::OpCodes::Stelem_Ref );
code->Emit( Emit::OpCodes::Ldloc_0 );
code->Emit( Emit::OpCodes::Ret );
property_builder->SetGetMethod( method_builder );
// setter
@@ -1361,22 +1406,6 @@ ConstructorInfo * TypeEmitter::get_ctor_uno_MethodAttribute()
Reference< reflection::XTypeDescription > const & xExc =
exceptions[ exc_pos ];
exception_types[ exc_pos ] = get_type( xExc );
if (xExc->getName().equalsAsciiL(
RTL_CONSTASCII_STRINGPARAM(
"com.sun.star.uno.Exception") ))
{
// specify only unoidl.com.sun.star.uno.Exception
exception_types[ 0 ] = get_type_Exception();
exc_length = 1;
break;
}
}
if (exc_length != seq_exceptions.getLength())
{
::System::Type * temp __gc [] =
new ::System::Type * __gc [ exc_length ];
::System::Array::Copy( exception_types, temp, exc_length );
exception_types = temp;
}
::System::Object * args __gc [] =
new ::System::Object * __gc [ 3 ];

View File

@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
# $Revision: 1.1 $
# $Revision: 1.2 $
#
# last change: $Author: dbo $ $Date: 2003-03-28 10:17:50 $
# last change: $Author: dbo $ $Date: 2003-04-25 15:14:34 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -77,14 +77,14 @@ TARGET = cli_ure
ALLTAR : \
$(CLI_OFFAPI)
$(CLI_UDKAPI) : $(SOLARBINDIR)$/udkapi.rdb
$(CLI_UDKAPI) : $(SOLARBINDIR)$/udkapi.rdb $(CLIMAKER)
+$(CLIMAKER) -O $@ $(CLIMAKER_FLAGS) \
--version "3.1.0.0" \
--product "OpenOffice.org SDK" \
--description "This assembly contains UNO-API metadata of the OpenOffice.org Software Development Kit (SDK)." \
$(SOLARBINDIR)$/udkapi.rdb
$(CLI_OFFAPI) : $(CLI_UDKAPI) $(SOLARBINDIR)$/offapi.rdb
$(CLI_OFFAPI) : $(CLI_UDKAPI) $(SOLARBINDIR)$/offapi.rdb $(CLIMAKER)
+$(CLIMAKER) -O $@ $(CLIMAKER_FLAGS) \
--version "1.0.0.0" \
--product "OpenOffice.org SDK" \