Imported Upstream version 14.45.0
[platform/upstream/libzypp.git] / zypp / MediaSetAccess.cc
index e3b3f2b..a7c5f8d 100644 (file)
@@ -354,27 +354,31 @@ IMPL_PTR_TYPE(MediaSetAccess);
 
   media::MediaAccessId MediaSetAccess::getMediaAccessId (media::MediaNr medianr)
   {
-    if ( _medias.find( medianr ) != _medias.end() )
+    media::MediaManager media_mgr;
+
+    if (_medias.find(medianr) != _medias.end())
     {
-      return _medias[medianr];
+      media::MediaAccessId id = _medias[medianr];
+      return id;
     }
-
-    Url url( medianr > 1 ? rewriteUrl( _url, medianr ) : _url );
-    media::MediaManager media_mgr;
-    media::MediaAccessId id = media_mgr.open( url, _prefAttachPoint );
+    Url url;
+    url = rewriteUrl (_url, medianr);
+    media::MediaAccessId id = media_mgr.open(url, _prefAttachPoint);
     _medias[medianr] = id;
 
     try
     {
-      if ( _verifiers.find(medianr) != _verifiers.end() )
+      if (_verifiers.find(medianr) != _verifiers.end())
       {
         // a verifier is set for this media
         // FIXME check the case where the verifier exists
         // but we have no access id for the media
-        media_mgr.delVerifier( id );
+        media::MediaAccessId id = _medias[medianr];
+        media::MediaManager media_mgr;
+        media_mgr.delVerifier(id);
         media_mgr.addVerifier( id, _verifiers[medianr] );
         // remove any saved verifier for this media
-        _verifiers.erase( medianr );
+        _verifiers.erase(medianr);
       }
     }
     catch ( const Exception &e )