329 |
329 |
330 EXPORT_C void TCatalogsDebug::Print( TRefByValue<const TDesC16> aFmt, ... ) |
330 EXPORT_C void TCatalogsDebug::Print( TRefByValue<const TDesC16> aFmt, ... ) |
331 { |
331 { |
332 VA_LIST list; |
332 VA_LIST list; |
333 VA_START( list, aFmt ); |
333 VA_START( list, aFmt ); |
334 |
334 HBufC8* buffer = NULL; |
|
335 HBufC* buffer16 = NULL; |
|
336 HBufC8* buffer16to8 = NULL; |
|
337 |
335 if( iOutput & EOutputExtLogger ) |
338 if( iOutput & EOutputExtLogger ) |
336 if( !DebugHeap()->IsEnabled( iType ) ) return; |
339 if( !DebugHeap()->IsEnabled( iType ) ) return; |
337 |
340 |
338 // Disable debug heap (if installed) to prevent infinite recursion. |
341 // Disable debug heap (if installed) to prevent infinite recursion. |
339 TBool debugHeapActive = RCatalogsDebugHeap::Activate( EFalse ); |
342 TBool debugHeapActive = RCatalogsDebugHeap::Activate( EFalse ); |
340 |
343 |
341 HBufC8* buffer = HBufC8::New( KCatalogsDebugBufferSize ); |
344 buffer = HBufC8::New( KCatalogsDebugBufferSize ); |
342 if ( buffer == NULL ) goto exit1; |
345 if ( buffer == NULL ) goto exit1; |
343 |
346 |
344 PrintGeneral( buffer->Des() ); |
347 PrintGeneral( buffer->Des() ); |
345 |
348 |
346 HBufC* buffer16 = HBufC::New( KCatalogsDebugBufferSize ); |
349 buffer16 = HBufC::New( KCatalogsDebugBufferSize ); |
347 if ( buffer16 == NULL ) goto exit2; |
350 if ( buffer16 == NULL ) goto exit2; |
348 buffer16->Des().AppendFormatList( aFmt, list ); |
351 buffer16->Des().AppendFormatList( aFmt, list ); |
349 |
352 |
350 HBufC8* buffer16to8 = HBufC8::New( buffer16->Length() ); |
353 buffer16to8 = HBufC8::New( buffer16->Length() ); |
351 if ( buffer16to8 == NULL ) goto exit3; |
354 if ( buffer16to8 == NULL ) goto exit3; |
352 buffer16to8->Des().Copy( *buffer16 ); |
355 buffer16to8->Des().Copy( *buffer16 ); |
353 |
356 |
354 #ifndef CATALOGS_DEBUG_XML |
357 #ifndef CATALOGS_DEBUG_XML |
355 buffer->Des().Append( KCatalogsSeparator ); |
358 buffer->Des().Append( KCatalogsSeparator ); |