341 TRAP( trapError, ret = DoExtFuncL( aTsyReqHandle, aIpc, aPackage ); ); |
341 TRAP( trapError, ret = DoExtFuncL( aTsyReqHandle, aIpc, aPackage ); ); |
342 |
342 |
343 if ( trapError != KErrNone ) |
343 if ( trapError != KErrNone ) |
344 { |
344 { |
345 //error handling. Object cannot be created. |
345 //error handling. Object cannot be created. |
|
346 //reset request handle to indicate the request is no longer ongoing |
|
347 iTsyReqHandleStore->FindAndResetTsyReqHandle(aTsyReqHandle); |
346 ReqCompleted( aTsyReqHandle, trapError ); |
348 ReqCompleted( aTsyReqHandle, trapError ); |
347 } |
349 } |
348 else if ( ret != KErrNone ) |
350 else if ( ret != KErrNone ) |
349 { |
351 { |
350 ReqCompleted( aTsyReqHandle, ret ); |
352 ReqCompleted( aTsyReqHandle, ret ); |
351 } |
353 } |
352 //save request handle |
354 else if ( EMultimodeCallReqHandleUnknown != iReqHandleType ) |
353 if ( EMultimodeCallReqHandleUnknown != iReqHandleType ) |
|
354 { |
355 { |
|
356 //save request handle |
355 #ifdef REQHANDLE_TIMER |
357 #ifdef REQHANDLE_TIMER |
356 SetTypeOfResponse( iReqHandleType, aTsyReqHandle ); |
358 SetTypeOfResponse( iReqHandleType, aTsyReqHandle ); |
357 #else |
359 #else |
358 iTsyReqHandleStore->SetTsyReqHandle( |
360 iTsyReqHandleStore->SetTsyReqHandle( |
359 iReqHandleType, aTsyReqHandle ); |
361 iReqHandleType, aTsyReqHandle ); |
360 #endif |
362 #endif |
361 // We've finished with this value now. Clear it so it doesn't leak |
|
362 // up to any other instances of this method down the call stack |
|
363 iReqHandleType = EMultimodeCallReqHandleUnknown; |
|
364 } |
363 } |
365 |
364 // We've finished with this value now. Clear it so it doesn't leak |
|
365 // up to any other instances of this method down the call stack |
|
366 iReqHandleType = EMultimodeCallReqHandleUnknown; |
366 } |
367 } |
367 |
368 |
368 return KErrNone; |
369 return KErrNone; |
369 } |
370 } |
370 |
371 |