@@ -58,15 +58,13 @@ namespace Plugin {
5858 _items.emplace (id, item);
5959 }
6060 }
61- Core::OptionalType<OBJECT> Get (KEY id )
61+ void Get (KEY id, Core::OptionalType<OBJECT>& result )
6262 {
6363 Core::SafeSyncType<Core::CriticalSection> lock (_lock);
64- Core::OptionalType<OBJECT> result;
6564 auto it = _items.find (id);
6665 if (it != _items.end ()) {
6766 result = it->second ;
6867 }
69- return result;
7068 }
7169 void Delete (KEY id)
7270 {
@@ -435,7 +433,8 @@ namespace Plugin {
435433 uint32_t SetDrmSessionState (uint32_t sessionId,
436434 State sessionState) override
437435 {
438- auto session = _parent._sessionStorage .Get (sessionId);
436+ Core::OptionalType<Session> session;
437+ _parent._sessionStorage .Get (sessionId, session);
439438 if (!session.IsSet ()) {
440439 return NoSuchSession;
441440 }
@@ -461,7 +460,8 @@ namespace Plugin {
461460 const string& licenseRequest,
462461 const string& initData, string& response) override
463462 {
464- auto session = _parent._sessionStorage .Get (sessionId);
463+ Core::OptionalType<Session> session;
464+ _parent._sessionStorage .Get (sessionId, session);
465465 if (!session.IsSet ()) {
466466 return NoSuchSession;
467467 }
@@ -498,7 +498,8 @@ namespace Plugin {
498498 uint32_t CloseDrmSession (uint32_t sessionId,
499499 string& /* response*/ ) override
500500 {
501- auto session = _parent._sessionStorage .Get (sessionId);
501+ Core::OptionalType<Session> session;
502+ _parent._sessionStorage .Get (sessionId, session);
502503 if (!session.IsSet ()) {
503504 return NoSuchSession;
504505 }
@@ -590,8 +591,8 @@ namespace Plugin {
590591 ASSERT (_secManager->Subscribe <OnAddWatermarkParams>(
591592 Timeout, _T (" onAddWatermark" ),
592593 [&](const OnAddWatermarkParams& params) {
593- auto session = _sessionStorage. Get (
594- params.SessionId );
594+ Core::OptionalType<Session> session;
595+ _sessionStorage. Get ( params.SessionId , session );
595596 if (!session.IsSet ()) {
596597 return ; // No such session
597598 }
@@ -627,13 +628,13 @@ namespace Plugin {
627628 ASSERT (_secManager->Subscribe <OnRemoveWatermarkParams>(
628629 Timeout, _T (" onRemoveWatermark" ),
629630 [&](const OnRemoveWatermarkParams& params) {
630- auto session = _sessionStorage. Get (
631- params.SessionId );
631+ Core::OptionalType<Session> session;
632+ _sessionStorage. Get ( params.SessionId , session );
632633 if (!session.IsSet ()) {
633634 return ; // No such session
634635 }
635- auto watermark = _watermarkStorage
636- .Get (params.GraphicId );
636+ Core::OptionalType<Watermark> watermark;
637+ _watermarkStorage .Get (params.GraphicId , watermark );
637638 if (!watermark.IsSet ()) {
638639 TRACE (Trace::Error,
639640 (_T (" no watermark %" PRIu32),
@@ -664,13 +665,13 @@ namespace Plugin {
664665 ASSERT (_secManager->Subscribe <OnDisplayWatermarkParams>(
665666 Timeout, _T (" onDisplayWatermark" ),
666667 [&](const OnDisplayWatermarkParams& params) {
667- auto session = _sessionStorage. Get (
668- params.SessionId );
668+ Core::OptionalType<Session> session;
669+ _sessionStorage. Get ( params.SessionId , session );
669670 if (!session.IsSet ()) {
670671 return ; // No such session
671672 }
672- auto watermark = _watermarkStorage
673- .Get (params.GraphicId );
673+ Core::OptionalType<Watermark> watermark;
674+ _watermarkStorage .Get (params.GraphicId , watermark );
674675 if (!watermark.IsSet ()) {
675676 TRACE (Trace::Error,
676677 (_T (" no watermark %" PRIu32),
@@ -698,8 +699,8 @@ namespace Plugin {
698699 ASSERT (_secManager->Subscribe <OnWatermarkSessionParams>(
699700 Timeout, _T (" onWatermarkSession" ),
700701 [&](const OnWatermarkSessionParams& params) {
701- auto session = _sessionStorage. Get (
702- params.SessionId );
702+ Core::OptionalType<Session> session;
703+ _sessionStorage. Get ( params.SessionId , session );
703704 if (!session.IsSet ()) {
704705 return ; // No such session
705706 }
@@ -719,13 +720,15 @@ namespace Plugin {
719720 ASSERT (_secManager->Subscribe <OnUpdateWatermarkParams>(
720721 Timeout, _T (" onUpdateWatermark" ),
721722 [&](const OnUpdateWatermarkParams& params) {
722- auto session = _sessionStorage. Get (
723- params.SessionId );
723+ Core::OptionalType<Session> session;
724+ _sessionStorage. Get ( params.SessionId , session );
724725 if (!session.IsSet ()) {
725726 return ; // No such session
726727 }
727728 auto id = params.GraphicId .Value ();
728- auto palette = _palettedImageDataStorage.Get (id);
729+ Core::OptionalType<Exchange::PalettedImageData>
730+ palette;
731+ _palettedImageDataStorage.Get (id, palette);
729732 if (!palette.IsSet ()) {
730733 TRACE (Trace::Error,
731734 (_T (" no palette %" PRIu32), id));
@@ -781,8 +784,8 @@ namespace Plugin {
781784 // which call ended, can be any. Can't take this
782785 // information as a response
783786 } else if (!params.Success ) {
784- auto watermark = _watermarkStorage
785- .Get (params.Id );
787+ Core::OptionalType<Watermark> watermark;
788+ _watermarkStorage .Get (params.Id , watermark );
786789 if (watermark.IsSet ()) {
787790 TRACE (Trace::Error,
788791 (_T (" %s %" PRIu32 " failed" ),
@@ -791,7 +794,8 @@ namespace Plugin {
791794 }
792795 } else if (params.Type == " create" ) {
793796 auto id = params.Id .Value ();
794- auto watermark = _watermarkStorage.Get (id);
797+ Core::OptionalType<Watermark> watermark;
798+ _watermarkStorage.Get (id, watermark);
795799 if (watermark.IsSet ()) {
796800 UpdateWatermarkParams out;
797801 out.Id = params.Id ;
@@ -821,7 +825,8 @@ namespace Plugin {
821825 }
822826 } else if (params.Type == " update" ) {
823827 auto id = params.Id .Value ();
824- auto watermark = _watermarkStorage.Get (id);
828+ Core::OptionalType<Watermark> watermark;
829+ _watermarkStorage.Get (id, watermark);
825830 if (watermark.IsSet ()
826831 && watermark.Value ()
827832 .AdjustVisibilityRequired ) {
@@ -906,11 +911,12 @@ namespace Plugin {
906911 ASSERT (_watermark->Subscribe <OnWatermarkRenderFailedParams>(
907912 Timeout, _T (" onWatermarkRenderFailed" ),
908913 [&](const OnWatermarkRenderFailedParams& params) {
909- auto watermark = _watermarkStorage
910- .Get (params.Image );
914+ Core::OptionalType<Watermark> watermark;
915+ _watermarkStorage .Get (params.Image , watermark );
911916 if (watermark.IsSet ()) {
912- auto session = _sessionStorage.Get (
913- watermark.Value ().SessionId );
917+ Core::OptionalType<Session> session;
918+ _sessionStorage.Get (watermark.Value ().SessionId ,
919+ session);
914920 if (!session.IsSet ()) {
915921 TRACE (Trace::Error,
916922 (_T (" no session %" PRIu32),
0 commit comments