From: Tomasz Marciniak Date: Fri, 25 Nov 2016 01:50:42 +0000 (+0900) Subject: [Convergence] Return copy of the array. X-Git-Tag: submit/tizen/20161128.110522^2~9^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=71c4d7ddbb535a76ad148654019e8519bd860570;p=platform%2Fcore%2Fapi%2Fwebapi-plugins.git [Convergence] Return copy of the array. [Verification] Code compiles. service array element can not be changed now. Change-Id: Ic121e12c29df5875f3fcd2e7f081746291a8d2e0 Signed-off-by: Tomasz Marciniak --- diff --git a/src/convergence/convergence_api.js b/src/convergence/convergence_api.js index 022cb659..34ea05c1 100644 --- a/src/convergence/convergence_api.js +++ b/src/convergence/convergence_api.js @@ -85,6 +85,12 @@ function getServiceConnectionStateName(connectionStateNumber) { function Device(id_, name_, type_, services_) { validator_.isConstructorCall(this, Device); + + var services = []; + if (services_) { + services = services_; + } + Object.defineProperties(this, { id: { value: id_, @@ -102,9 +108,9 @@ function Device(id_, name_, type_, services_) { enumerable: true }, services: { - value: services_, - writable: false, - enumerable: true + enumerable: true, + set : function(){}, + get : function(){ return services.slice(); } }, }); } @@ -146,10 +152,9 @@ ConvergenceManager.prototype.startDiscovery = function(successCallback, return; } - // Create an instance of the device - var d = new Device(result.device.id, result.device.name, result.device.type, []); - console.log('Service number: ' + result.device.services.length); + var services = []; + var id = result.device.id; for (var i = 0; i < result.device.services.length; ++i) { var service_data = result.device.services[i]; var s; @@ -166,10 +171,13 @@ ConvergenceManager.prototype.startDiscovery = function(successCallback, s.connectionState = getServiceConnectionStateName( result.device.services[i].connectionState); - s._deviceId = d.id; - d.services.push(s); + s._deviceId = id; + services.push(s); } + // Create an instance of the device + var d = new Device(id, result.device.name, result.device.type, services); + // Store newly found device internally convergenceDevices.push(d);