2
0
Эх сурвалжийг харах

Change OnConnect to send platform list instead of connection pointer to avoid any need to access a potentially disposed connection

Signed-off-by: amzn-mike <[email protected]>
amzn-mike 3 жил өмнө
parent
commit
176dd24863

+ 2 - 7
Code/Tools/AssetProcessor/native/AssetManager/AssetCatalog.cpp

@@ -589,16 +589,11 @@ namespace AssetProcessor
         m_catalogIsDirty = true;
     }
 
-    void AssetCatalog::OnConnect(unsigned int connectionId, ::Connection* connection)
+    void AssetCatalog::OnConnect(unsigned int connectionId, QStringList platforms)
     {
-        if(!connection || connection->Status() != ::Connection::ConnectionStatus::Connected)
-        {
-            return;
-        }
-
         // Send out a message for each asset to make sure the connected tools are aware of the existence of all previously built assets
         // since the assetcatalog might not have been written out to disk previously.
-        for (QString platform : connection->AssetPlatforms())
+        for (QString platform : platforms)
         {
             QMutexLocker locker(&m_registriesMutex);
             auto itr = m_registries.find(platform);

+ 1 - 1
Code/Tools/AssetProcessor/native/AssetManager/AssetCatalog.h

@@ -68,7 +68,7 @@ namespace AssetProcessor
         // incoming message from the AP
         void OnAssetMessage(AzFramework::AssetSystem::AssetNotificationMessage message);
         void OnDependencyResolved(const AZ::Data::AssetId& assetId, const AzToolsFramework::AssetDatabase::ProductDependencyDatabaseEntry& entry);
-        void OnConnect(unsigned int connectionId, ::Connection* connection);
+        void OnConnect(unsigned int connectionId, QStringList platforms);
 
         void SaveRegistry_Impl();
         virtual AzFramework::AssetSystem::GetUnresolvedDependencyCountsResponse HandleGetUnresolvedDependencyCountsRequest(MessageData<AzFramework::AssetSystem::GetUnresolvedDependencyCountsRequest> messageData);

+ 1 - 1
Code/Tools/AssetProcessor/native/connection/connection.cpp

@@ -364,7 +364,7 @@ void Connection::OnConnectionEstablished(QString ipAddress, quint16 port)
     SetPort(port);
     SetStatus(Connected);
 
-    Q_EMIT ConnectionReady(ConnectionId(), this);
+    Q_EMIT ConnectionReady(ConnectionId(), AssetPlatforms());
 }
 
 void Connection::ReceiveMessage(unsigned int type, unsigned int serial, QByteArray payload)

+ 1 - 1
Code/Tools/AssetProcessor/native/connection/connection.h

@@ -187,7 +187,7 @@ Q_SIGNALS:
     void DisplayNameChanged();
     void ElapsedChanged();
     void NormalConnectionRequested(QString IpAddress, quint16 Port);
-    void ConnectionReady(unsigned int connId, Connection* connection);
+    void ConnectionReady(unsigned int connId, QStringList platforms);
 
     void connectionEnded();
     void TerminateConnection();

+ 1 - 1
Code/Tools/AssetProcessor/native/connection/connectionManager.h

@@ -103,7 +103,7 @@ Q_SIGNALS:
 
     void ConnectionError(unsigned int connId, QString error);
 
-    void ConnectionReady(unsigned int connectionId, Connection* connection);
+    void ConnectionReady(unsigned int connectionId, QStringList platforms);
 
     void ReadyToQuit(QObject* source);