#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 $ * $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 * The Contents of this file are made available subject to the terms of
* either of the following licenses * either of the following licenses
@@ -635,9 +635,54 @@ ConstructorInfo * TypeEmitter::get_ctor_uno_MethodAttribute()
S"get_Raises", property_method_attr, S"get_Raises", property_method_attr,
__typeof (::System::Type * __gc []), no_params ); __typeof (::System::Type * __gc []), no_params );
code = method_builder->GetILGenerator(); code = method_builder->GetILGenerator();
// // xxx todo: complex get_Raises()
code->Emit( Emit::OpCodes::Ldarg_0 ); code->Emit( Emit::OpCodes::Ldarg_0 );
code->Emit( Emit::OpCodes::Ldfld, field_m_raises ); 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 ); code->Emit( Emit::OpCodes::Ret );
property_builder->SetGetMethod( method_builder ); property_builder->SetGetMethod( method_builder );
// setter // setter
@@ -1361,22 +1406,6 @@ ConstructorInfo * TypeEmitter::get_ctor_uno_MethodAttribute()
Reference< reflection::XTypeDescription > const & xExc = Reference< reflection::XTypeDescription > const & xExc =
exceptions[ exc_pos ]; exceptions[ exc_pos ];
exception_types[ exc_pos ] = get_type( xExc ); 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 [] = ::System::Object * args __gc [] =
new ::System::Object * __gc [ 3 ]; new ::System::Object * __gc [ 3 ];

View File

@@ -2,9 +2,9 @@
# #
# $RCSfile: makefile.mk,v $ # $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 # The Contents of this file are made available subject to the terms of
# either of the following licenses # either of the following licenses
@@ -77,14 +77,14 @@ TARGET = cli_ure
ALLTAR : \ ALLTAR : \
$(CLI_OFFAPI) $(CLI_OFFAPI)
$(CLI_UDKAPI) : $(SOLARBINDIR)$/udkapi.rdb $(CLI_UDKAPI) : $(SOLARBINDIR)$/udkapi.rdb $(CLIMAKER)
+$(CLIMAKER) -O $@ $(CLIMAKER_FLAGS) \ +$(CLIMAKER) -O $@ $(CLIMAKER_FLAGS) \
--version "3.1.0.0" \ --version "3.1.0.0" \
--product "OpenOffice.org SDK" \ --product "OpenOffice.org SDK" \
--description "This assembly contains UNO-API metadata of the OpenOffice.org Software Development Kit (SDK)." \ --description "This assembly contains UNO-API metadata of the OpenOffice.org Software Development Kit (SDK)." \
$(SOLARBINDIR)$/udkapi.rdb $(SOLARBINDIR)$/udkapi.rdb
$(CLI_OFFAPI) : $(CLI_UDKAPI) $(SOLARBINDIR)$/offapi.rdb $(CLI_OFFAPI) : $(CLI_UDKAPI) $(SOLARBINDIR)$/offapi.rdb $(CLIMAKER)
+$(CLIMAKER) -O $@ $(CLIMAKER_FLAGS) \ +$(CLIMAKER) -O $@ $(CLIMAKER_FLAGS) \
--version "1.0.0.0" \ --version "1.0.0.0" \
--product "OpenOffice.org SDK" \ --product "OpenOffice.org SDK" \