Author: abroekhuis
Date: Wed Aug 13 12:54:24 2014
New Revision: 1617718

URL: http://svn.apache.org/r1617718
Log:
CELIX-136: Applied patch

Modified:
    celix/trunk/framework/private/src/service_registry.c
    
celix/trunk/remote_services/discovery_configured/private/include/endpoint_discovery_poller.h
    
celix/trunk/remote_services/discovery_configured/private/include/endpoint_discovery_server.h
    celix/trunk/remote_services/discovery_configured/private/src/discovery.c
    
celix/trunk/remote_services/discovery_configured/private/src/discovery_activator.c
    
celix/trunk/remote_services/discovery_configured/private/src/endpoint_discovery_poller.c
    
celix/trunk/remote_services/discovery_configured/private/src/endpoint_discovery_server.c

Modified: celix/trunk/framework/private/src/service_registry.c
URL: 
http://svn.apache.org/viewvc/celix/trunk/framework/private/src/service_registry.c?rev=1617718&r1=1617717&r2=1617718&view=diff
==============================================================================
--- celix/trunk/framework/private/src/service_registry.c (original)
+++ celix/trunk/framework/private/src/service_registry.c Wed Aug 13 12:54:24 
2014
@@ -254,7 +254,9 @@ celix_status_t serviceRegistry_unregiste
                }
                arrayList_destroy(clients);
 
-               // Disabled for now, since a reference can already be destroyed 
here.
+               // Disabled since a reference normally already is destroyed 
here.
+               // Compared to Java OSGi, this might result in crashes, since 
the references for the service are all destroyed
+               // Anyone still holding a pointer to such a reference is in 
risk, hence, always use a service tracker or similar!
 //             serviceReference_invalidate(reference);
        }
        serviceRegistration_invalidate(registration);

Modified: 
celix/trunk/remote_services/discovery_configured/private/include/endpoint_discovery_poller.h
URL: 
http://svn.apache.org/viewvc/celix/trunk/remote_services/discovery_configured/private/include/endpoint_discovery_poller.h?rev=1617718&r1=1617717&r2=1617718&view=diff
==============================================================================
--- 
celix/trunk/remote_services/discovery_configured/private/include/endpoint_discovery_poller.h
 (original)
+++ 
celix/trunk/remote_services/discovery_configured/private/include/endpoint_discovery_poller.h
 Wed Aug 13 12:54:24 2014
@@ -33,7 +33,7 @@
 typedef struct endpoint_discovery_poller *endpoint_discovery_poller_pt;
 
 celix_status_t endpointDiscoveryPoller_create(discovery_pt discovery, 
bundle_context_pt context, endpoint_discovery_poller_pt *poller);
-celix_status_t endpointDiscoveryPoller_destroy(endpoint_discovery_poller_pt 
*poller);
+celix_status_t endpointDiscoveryPoller_destroy(endpoint_discovery_poller_pt 
poller);
 
 celix_status_t 
endpointDiscoveryPoller_addDiscoveryEndpoint(endpoint_discovery_poller_pt 
poller, char *url);
 celix_status_t 
endpointDiscoveryPoller_removeDiscoveryEndpoint(endpoint_discovery_poller_pt 
poller, char *url);

Modified: 
celix/trunk/remote_services/discovery_configured/private/include/endpoint_discovery_server.h
URL: 
http://svn.apache.org/viewvc/celix/trunk/remote_services/discovery_configured/private/include/endpoint_discovery_server.h?rev=1617718&r1=1617717&r2=1617718&view=diff
==============================================================================
--- 
celix/trunk/remote_services/discovery_configured/private/include/endpoint_discovery_server.h
 (original)
+++ 
celix/trunk/remote_services/discovery_configured/private/include/endpoint_discovery_server.h
 Wed Aug 13 12:54:24 2014
@@ -45,10 +45,10 @@ celix_status_t endpointDiscoveryServer_c
 /**
  * Stops and destroys a given instance of an endpoint discovery server.
  *
- * @param server [out] the pointer to the instance to destroy.
+ * @param server [in] the pointer to the instance to destroy.
  * @return CELIX_SUCCESS when successful.
  */
-celix_status_t endpointDiscoveryServer_destroy(endpoint_discovery_server_pt 
*server);
+celix_status_t endpointDiscoveryServer_destroy(endpoint_discovery_server_pt 
server);
 
 /**
  * Adds a given endpoint description to expose through the given discovery 
server.

Modified: 
celix/trunk/remote_services/discovery_configured/private/src/discovery.c
URL: 
http://svn.apache.org/viewvc/celix/trunk/remote_services/discovery_configured/private/src/discovery.c?rev=1617718&r1=1617717&r2=1617718&view=diff
==============================================================================
--- celix/trunk/remote_services/discovery_configured/private/src/discovery.c 
(original)
+++ celix/trunk/remote_services/discovery_configured/private/src/discovery.c 
Wed Aug 13 12:54:24 2014
@@ -100,12 +100,12 @@ celix_status_t discovery_start(discovery
 celix_status_t discovery_stop(discovery_pt discovery) {
        celix_status_t status;
 
-       status = endpointDiscoveryServer_destroy(&discovery->server);
+       status = endpointDiscoveryServer_destroy(discovery->server);
        if (status != CELIX_SUCCESS) {
                return CELIX_BUNDLE_EXCEPTION;
        }
 
-       status = endpointDiscoveryPoller_destroy(&discovery->poller);
+       status = endpointDiscoveryPoller_destroy(discovery->poller);
        if (status != CELIX_SUCCESS) {
                return CELIX_BUNDLE_EXCEPTION;
        }

Modified: 
celix/trunk/remote_services/discovery_configured/private/src/discovery_activator.c
URL: 
http://svn.apache.org/viewvc/celix/trunk/remote_services/discovery_configured/private/src/discovery_activator.c?rev=1617718&r1=1617717&r2=1617718&view=diff
==============================================================================
--- 
celix/trunk/remote_services/discovery_configured/private/src/discovery_activator.c
 (original)
+++ 
celix/trunk/remote_services/discovery_configured/private/src/discovery_activator.c
 Wed Aug 13 12:54:24 2014
@@ -129,6 +129,9 @@ celix_status_t bundleActivator_start(voi
                status = discovery_start(activator->discovery);
        }
 
+       // We can release the scope, as properties_set makes a copy of the key 
& value...
+       free(scope);
+
        return status;
 }
 
@@ -160,5 +163,7 @@ celix_status_t bundleActivator_destroy(v
        activator->discovery = NULL;
        activator->context = NULL;
 
+       free(activator);
+
        return status;
 }

Modified: 
celix/trunk/remote_services/discovery_configured/private/src/endpoint_discovery_poller.c
URL: 
http://svn.apache.org/viewvc/celix/trunk/remote_services/discovery_configured/private/src/endpoint_discovery_poller.c?rev=1617718&r1=1617717&r2=1617718&view=diff
==============================================================================
--- 
celix/trunk/remote_services/discovery_configured/private/src/endpoint_discovery_poller.c
 (original)
+++ 
celix/trunk/remote_services/discovery_configured/private/src/endpoint_discovery_poller.c
 Wed Aug 13 12:54:24 2014
@@ -124,23 +124,23 @@ celix_status_t endpointDiscoveryPoller_c
 /**
  * Destroys and frees up memory for a given endpoint_discovery_poller struct.
  */
-celix_status_t endpointDiscoveryPoller_destroy(endpoint_discovery_poller_pt 
*poller) {
+celix_status_t endpointDiscoveryPoller_destroy(endpoint_discovery_poller_pt 
poller) {
     celix_status_t status = CELIX_SUCCESS;
 
-    (*poller)->running = false;
+    poller->running = false;
 
-    celixThread_join((*poller)->pollerThread, NULL);
+    celixThread_join(poller->pollerThread, NULL);
 
-    status = celixThreadMutex_lock(&(*poller)->pollerLock);
+    status = celixThreadMutex_lock(&poller->pollerLock);
     if (status != CELIX_SUCCESS) {
         return CELIX_BUNDLE_EXCEPTION;
     }
 
-       hashMap_destroy((*poller)->entries, true, false);
+       hashMap_destroy(poller->entries, true, false);
 
-    status = celixThreadMutex_unlock(&(*poller)->pollerLock);
+    status = celixThreadMutex_unlock(&poller->pollerLock);
 
-    free(*poller);
+    free(poller);
 
        return status;
 }

Modified: 
celix/trunk/remote_services/discovery_configured/private/src/endpoint_discovery_server.c
URL: 
http://svn.apache.org/viewvc/celix/trunk/remote_services/discovery_configured/private/src/endpoint_discovery_server.c?rev=1617718&r1=1617717&r2=1617718&view=diff
==============================================================================
--- 
celix/trunk/remote_services/discovery_configured/private/src/endpoint_discovery_server.c
 (original)
+++ 
celix/trunk/remote_services/discovery_configured/private/src/endpoint_discovery_server.c
 Wed Aug 13 12:54:24 2014
@@ -111,22 +111,22 @@ celix_status_t endpointDiscoveryServer_c
        return status;
 }
 
-celix_status_t endpointDiscoveryServer_destroy(endpoint_discovery_server_pt 
*server) {
+celix_status_t endpointDiscoveryServer_destroy(endpoint_discovery_server_pt 
server) {
        celix_status_t status = CELIX_SUCCESS;
 
        // stop & block until the actual server is shut down...
-       mg_stop((*server)->ctx);
-       (*server)->ctx = NULL;
+       mg_stop(server->ctx);
+       server->ctx = NULL;
 
-       status = celixThreadMutex_lock(&(*server)->serverLock);
+       status = celixThreadMutex_lock(&server->serverLock);
 
-       hashMap_destroy((*server)->entries, true /* freeKeys */, false /* 
freeValues */);
+       hashMap_destroy(server->entries, true /* freeKeys */, false /* 
freeValues */);
 
-       status = celixThreadMutex_unlock(&(*server)->serverLock);
-       status = celixThreadMutex_destroy(&(*server)->serverLock);
+       status = celixThreadMutex_unlock(&server->serverLock);
+       status = celixThreadMutex_destroy(&server->serverLock);
 
-       free((void*) (*server)->path);
-       free(*server);
+       free((void*) server->path);
+       free(server);
 
        return status;
 }


Reply via email to