Changeset 274 for trunk


Ignore:
Timestamp:
Jul 18, 2011, 1:46:56 PM (13 years ago)
Author:
djay
Message:

Solving bugs #43 and #42

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/zoo-api/js/ZOO-api.js

    r189 r274  
    60676067   *          needs to be interpreted.
    60686068   */
    6069   Execute: function(inputs) {
     6069  Execute: function(inputs,outputs) {
    60706070    if (this.identifier == null)
    60716071      return null;
    6072     var body = new XML('<wps:Execute service="WPS" version="1.0.0" xmlns:wps="'+this.namespaces['wps']+'" xmlns:ows="'+this.namespaces['ows']+'" xmlns:xlink="'+this.namespaces['xlink']+'" xmlns:xsi="'+this.namespaces['xsi']+'" xsi:schemaLocation="'+this.schemaLocation+'"><ows:Identifier>'+this.identifier+'</ows:Identifier>'+this.buildDataInputsNode(inputs)+'</wps:Execute>');
     6072    var body = new XML('<wps:Execute service="WPS" version="1.0.0" xmlns:wps="'+this.namespaces['wps']+'" xmlns:ows="'+this.namespaces['ows']+'" xmlns:xlink="'+this.namespaces['xlink']+'" xmlns:xsi="'+this.namespaces['xsi']+'" xsi:schemaLocation="'+this.schemaLocation+'"><ows:Identifier>'+this.identifier+'</ows:Identifier>'+this.buildDataInputsNode(inputs)+this.buildDataOutputsNode(outputs)+'</wps:Execute>');
    60736073    body = body.toXMLString();
    60746074    var response = ZOO.Request.Post(this.url,body,['Content-Type: text/xml; charset=UTF-8']);
    60756075    return response;
    60766076  },
    6077   /**
    6078    * Property: buildInput
    6079    * Object containing methods to build WPS inputs.
    6080    */
    6081   buildInput: {
    6082     /**
    6083      * Method: buildInput.complex
    6084      * Given an E4XElement representing the WPS complex data input.
     6077  buildOutput:{
     6078    /**
     6079     * Method: buildOutput.ResponseDocument
     6080     * Given an E4XElement representing the WPS ResponseDocument output.
    60856081     *
    60866082     * Parameters:
     
    60916087     * {E4XElement} A WPS Input node.
    60926088     */
     6089    'ResponseDocument': function(identifier,obj) {
     6090      var output = new XML('<wps:ResponseForm xmlns:wps="'+this.namespaces['wps']+'"><wps:ResponseDocument><wps:Output'+(obj["mimeType"]?' mimeType="'+obj["mimeType"]+'" ':'')+(obj["encoding"]?' encoding="'+obj["encoding"]+'" ':'')+(obj["asReference"]?' asReference="'+obj["asReference"]+'" ':'')+'><ows:Identifier xmlns:ows="'+this.namespaces['ows']+'">'+identifier+'</ows:Identifier></wps:Output></wps:ResponseDocument></wps:ResponseForm>');
     6091      if (obj.encoding)
     6092        output.*::Data.*::ComplexData.@encoding = obj.encoding;
     6093      if (obj.schema)
     6094        output.*::Data.*::ComplexData.@schema = obj.schema;
     6095      output = output.toXMLString();
     6096      return output;
     6097    },
     6098    'RawDataOutput': function(identifier,obj) {
     6099      var output = new XML('<wps:ResponseForm xmlns:wps="'+this.namespaces['wps']+'"><wps:RawDataOutput><wps:Output '+(obj["mimeType"]?' mimeType="'+obj["mimeType"]+'" ':'')+(obj["encoding"]?' encoding="'+obj["encoding"]+'" ':'')+'><ows:Identifier xmlns:ows="'+this.namespaces['ows']+'">'+identifier+'</ows:Identifier></wps:Output></wps:RawDataOutput></wps:ResponseForm>');
     6100      if (obj.encoding)
     6101        output.*::Data.*::ComplexData.@encoding = obj.encoding;
     6102      if (obj.schema)
     6103        output.*::Data.*::ComplexData.@schema = obj.schema;
     6104      output = output.toXMLString();
     6105      return output;
     6106    }
     6107
     6108  },
     6109  /**
     6110   * Property: buildInput
     6111   * Object containing methods to build WPS inputs.
     6112   */
     6113  buildInput: {
     6114    /**
     6115     * Method: buildInput.complex
     6116     * Given an E4XElement representing the WPS complex data input.
     6117     *
     6118     * Parameters:
     6119     * identifier - {String} the input indetifier
     6120     * data - {Object} A WPS complex data input.
     6121     *
     6122     * Returns:
     6123     * {E4XElement} A WPS Input node.
     6124     */
    60936125    'complex': function(identifier,data) {
    60946126      var input = new XML('<wps:Input xmlns:wps="'+this.namespaces['wps']+'"><ows:Identifier xmlns:ows="'+this.namespaces['ows']+'">'+identifier+'</ows:Identifier><wps:Data><wps:ComplexData>'+data.value+'</wps:ComplexData></wps:Data></wps:Input>');
    6095       input.*::Data.*::ComplexData.@mimeType = data.mimetype ? data.mimetype : 'text/plain';
     6127      input.*::Data.*::ComplexData.@mimeType = data.mimetype ? data.mimetype : 'application/json';
    60966128      if (data.encoding)
    60976129        input.*::Data.*::ComplexData.@encoding = data.encoding;
     
    61606192    return '<wps:DataInputs xmlns:wps="'+this.namespaces['wps']+'">'+inputsArray.join('\n')+'</wps:DataInputs>';
    61616193  },
     6194
     6195  buildDataOutputsNode:function(outputs){
     6196    var data, builder, outputsArray=[];
     6197    for (var attr in outputs) {
     6198      data = outputs[attr];
     6199      builder = this.buildOutput[data.type];
     6200      /*if (data.mimetype || data.type == 'complex')
     6201        builder = this.buildInput['complex'];
     6202      else if (data.type == 'reference' || data.type == 'url')
     6203        builder = this.buildInput['reference'];
     6204      else
     6205      builder = this.buildInput['literal'];*/
     6206      outputsArray.push(builder.apply(this,[attr,data]));
     6207    }
     6208    return outputsArray.join('\n');
     6209  },
     6210
    61626211  CLASS_NAME: "ZOO.Process"
    61636212});
  • trunk/zoo-kernel/configure.ac

    r208 r274  
    314314        JS_FILE=""
    315315else
     316        JS_FILE="service_internal_js.o"
    316317        if test "$JSHOME" = "yes"
    317318        then
    318                 JS_FILE="service_internal_js.o"
    319319
    320320                #on teste si on est sous debian like
    321321                if test -f "/usr/bin/dpkg"
    322322                then
    323                         if test -n "`dpkg -l | grep libmozjs-dev`"
     323                        if test -n "`dpkg -l | grep libmozjs185-dev`"
    324324                        then
    325                                 JS_CPPFLAGS="-I/usr/include/mozjs/"
    326                                 JS_LDFLAGS="-L/usr/lib -lmozjs -lm"
    327                                 JS_LIB="mozjs"
     325                                JS_CPPFLAGS="-I/usr/include/js/"
     326                                JS_LDFLAGS="-L/usr/lib -lmozjs185 -lm"
     327                                JS_LIB="mozjs185"
    328328                        else
    329                                 XUL_VERSION="`dpkg -l | grep xulrunner | grep dev | awk '{print $3;}' | sed -e 's/\([[0-9]]\{1,2\}\.[[0-9]]\{1,2\}\.[[0-9]]\{1,2\}\.[[0-9]]\{1,2\}\).*/\1/'`"
     329                                XUL_VERSION="`dpkg -l | grep xulrunner | grep dev | awk '{print $3;}' | cut -d'+' -f1`"
    330330                                if test -n "$XUL_VERSION"
    331331                                then
     
    334334                                        JS_LIB="mozjs"
    335335                                else
    336                                         AC_MSG_ERROR([You must install libmozjs-dev or xulrunner-dev ])
     336                                        AC_MSG_ERROR([You must install libmozjs185-dev or xulrunner-dev ])
    337337                                fi
    338338                        fi
    339339                else
    340                         AC_MSG_ERROR([You must  specify your custom install of libjs])
     340                        AC_MSG_ERROR([You must  specify your custom install of libmozjs185])
    341341                fi
    342342        else
    343                 JS_CPPFLAGS="-I$JSHOME/include/"
    344                 JS_LDFLAGS="-L$JSHOME/lib -lmozjs -lm"
    345                 JS_LIB="mozjs"
     343                JS_CPPFLAGS="-I$JSHOME/include/js/"
     344                JS_LDFLAGS="-L$JSHOME/lib -lmozjs185 -lm"
     345                JS_LIB="mozjs185"
    346346
    347347        fi
     
    356356        LIBS="$JS_LDFLAGS"
    357357
    358         AC_CHECK_LIB([$JS_LIB], [JS_CallFunctionName], [], [AC_MSG_ERROR([could not find $JS_LIB])], [])
     358        AC_CHECK_LIB([$JS_LIB], [JS_NewCompartmentAndGlobalObject,JS_CompileFile,JS_CallFunctionName], [], [AC_MSG_ERROR([could not find $JS_LIB])], [])
    359359                       
    360360        AC_SUBST([JS_CPPFLAGS])
     
    366366
    367367AC_CONFIG_FILES([Makefile])
     368AC_CONFIG_FILES([ZOOMakefile.opts])
    368369AC_OUTPUT
  • trunk/zoo-kernel/service_internal.c

    r255 r274  
    258258
    259259JSBool
    260 JSUpdateStatus(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
     260JSUpdateStatus(JSContext *cx, uintN argc, jsval *argv1)
    261261{
     262  jsval *argv = JS_ARGV(cx,argv1);
    262263  JS_MaybeGC(cx);
    263264  char *sid;
     
    280281  }
    281282  if(getMapFromMaps(conf,"lenv","status")!=NULL){
    282     if(status!=NULL)
     283    fprintf(stderr,"STATUS RETURNED : %s\n",status);
     284    if(status!=NULL){
    283285      setMapInMaps(conf,"lenv","status",status);
     286      free(status);
     287    }
    284288    else
    285289      setMapInMaps(conf,"lenv","status","15");
  • trunk/zoo-kernel/service_internal.h

    r253 r274  
    8383#ifdef USE_JS
    8484  char* JSValToChar(JSContext*,jsval*);
    85   JSBool JSUpdateStatus(JSContext*,JSObject*,uintN,jsval *,jsval *);
     85  JSBool JSUpdateStatus(JSContext*,uintN,jsval *);
    8686#endif
    8787 
  • trunk/zoo-kernel/service_internal_js.c

    r42 r274  
    2727static char dbg[1024];
    2828
     29JSBool
     30JSAlert(JSContext *cx, uintN argc, jsval *argv1)
     31{
     32  jsval *argv = JS_ARGV(cx,argv1);
     33  int i=0;
     34  JS_MaybeGC(cx);
     35  for(i=0;i<argc;i++){
     36    JSString* jsmsg = JS_ValueToString(cx,argv[i]);
     37    fprintf(stderr,"[ZOO-API:JS] %s\n",JS_EncodeString(cx,jsmsg));
     38  }
     39  JS_MaybeGC(cx);
     40 
     41  return JS_TRUE;
     42}
     43
    2944int zoo_js_support(maps** main_conf,map* request,service* s,
    3045                   maps **inputs,maps **outputs)
     
    5772    return 1;
    5873  }
    59   JS_SetOptions(cx, JSOPTION_VAROBJFIX);
     74  JS_SetOptions(cx, JSOPTION_VAROBJFIX | JSOPTION_JIT | JSOPTION_METHODJIT);
    6075  JS_SetVersion(cx, JSVERSION_LATEST);
    6176  JS_SetErrorReporter(cx, reportError);
    6277
    6378  /* Create the global object. */
    64   global = JS_NewObject(cx, &global_class, NULL, NULL);
    65   if (global == NULL){
    66     return 1;
    67   }
     79  global = JS_NewCompartmentAndGlobalObject(cx, &global_class, NULL);
    6880
    6981  /* Populate the global object with the standard globals,
     
    7284    return 1;
    7385  }
     86
    7487  if (!JS_DefineFunction(cx, global, "ZOORequest", JSRequest, 4, 0))
    7588    return 1;
    7689  if (!JS_DefineFunction(cx, global, "ZOOUpdateStatus", JSUpdateStatus, 2, 0))
     90    return 1;
     91  if (!JS_DefineFunction(cx, global, "alert", JSAlert, 2, 0))
    7792    return 1;
    7893
     
    86101  char api0[strlen(tmpm1->value)+strlen(ntmp)+15];
    87102  sprintf(api0,"%s/%sZOO-proj4js.js",ntmp,tmpm1->value);
     103#ifdef JS_DEBUG
    88104  fprintf(stderr,"Trying to load %s\n",api0);
    89   JSScript *api_script1=loadZooApiFile(cx,global,api0);
     105#endif
     106  JSObject *api_script1=loadZooApiFile(cx,global,api0);
    90107  fflush(stderr);
    91108
    92109  char api1[strlen(tmpm1->value)+strlen(ntmp)+11];
    93110  sprintf(api1,"%s/%sZOO-api.js",ntmp,tmpm1->value);
     111#ifdef JS_DEBUG
    94112  fprintf(stderr,"Trying to load %s\n",api1);
    95   JSScript *api_script2=loadZooApiFile(cx,global,api1);
     113#endif
     114  JSObject *api_script2=loadZooApiFile(cx,global,api1);
    96115  fflush(stderr);
    97116
     
    106125  sprintf(filename,"%s/%s%s",ntmp,tmpm1->value,tmpm2->value);
    107126  filename[strlen(tmpm1->value)+strlen(tmpm2->value)+strlen(ntmp)+1]=0;
     127#ifdef JS_DEBUG
    108128  fprintf(stderr,"FILENAME %s\n",filename);
     129#endif
    109130  struct stat file_status;
    110131  stat(filename, &file_status);
     
    112133  uint16 lineno;
    113134  jsval rval;
    114   FILE *jsfile=fopen(filename,"r");
    115135  JSBool ok ;
    116   JSScript *script = JS_CompileFileHandle(cx, global, filename,jsfile);
     136  JSObject *script = JS_CompileFile(cx, global, filename);
    117137  if(script!=NULL){
    118138    (void)JS_ExecuteScript(cx, global, script, &rval);
     
    127147    JS_DestroyRuntime(rt);
    128148    JS_ShutDown();
    129     fclose(jsfile);
    130149    exit(-1);
    131150  }
     
    161180    if(strlen(dbg)==0)
    162181      sprintf(dbg,"No result was found after the function call");
    163     sprintf(tmp1,"Unable to run %s from the JavScript file %s : \n %s",s->name,filename,dbg);
     182    sprintf(tmp1,"Unable to run %s from the JavaScript file %s : \n %s",s->name,filename,dbg);
     183#ifdef JS_DEBUG
    164184    fprintf(stderr,"%s",tmp1);
     185#endif
    165186    map* err=createMap("text",tmp1);
    166187    addToMap(err,"code","NoApplicableCode");
     
    211232    jsval tmp2;
    212233    JSBool hasElement=JS_GetProperty(cx,d,"outputs",&tmp2);
     234#ifdef JS_DEBUG
    213235    if(!hasElement)
    214236      fprintf(stderr,"No outputs property returned\n");
     
    217239    else
    218240      fprintf(stderr,"outputs is not an array as expected\n");
     241#endif
    219242    *outputs=mapsFromJSObject(cx,tmp2);
    220243#ifdef JS_DEBUG
    221     dumpMaps(out);
     244    dumpMaps(outputs);
    222245#endif
    223246  }
    224247
    225248  /* Cleanup. */
    226   JS_DestroyScript(cx, script);
    227   JS_DestroyScript(cx, api_script1);
    228   JS_DestroyScript(cx, api_script2);
    229   //JS_MaybeGC(cx);
    230   // If we use the DestroyContext as requested to release memory then we get
    231   // issue getting back the main configuration maps after coming back to the
    232   // runRequest function ...
    233   //JS_DestroyContext(cx);
     249  JS_DestroyContext(cx);
    234250  JS_DestroyRuntime(rt);
    235251  JS_ShutDown();
     
    240256}
    241257
    242 JSScript * loadZooApiFile(JSContext *cx,JSObject  *global, char* filename){
     258JSObject * loadZooApiFile(JSContext *cx,JSObject  *global, char* filename){
    243259  struct stat api_status;
    244260  int s=stat(filename, &api_status);
    245261  if(s==0){
    246262    jsval rval;
    247     FILE *jsfile=fopen(filename,"r");
    248263    JSBool ok ;
    249     JSScript *script = JS_CompileFileHandle(cx, global, filename,jsfile);
     264    JSObject *script = JS_CompileFile(cx, JS_GetGlobalObject(cx), filename);
    250265    if(script!=NULL){
    251       (void)JS_ExecuteScript(cx, global, script, &rval);
     266      (void)JS_ExecuteScript(cx, JS_GetGlobalObject(cx), script, &rval);
     267#ifdef JS_DEBUG
    252268      fprintf(stderr,"**************\n%s correctly loaded\n**************\n",filename);
     269#endif
    253270      return script;
    254271    }
     272#ifdef JS_DEBUG
    255273    else
    256274      fprintf(stderr,"\n**************\nUnable to run %s\n**************\n",filename);
    257   }
     275#endif
     276  }
     277#ifdef JS_DEBUG
    258278  else
    259279    fprintf(stderr,"\n**************\nUnable to load %s\n**************\n",filename);
     280#endif
    260281  return NULL;
    261282}
     
    288309  map* tmpm=t;
    289310  while(tmpm!=NULL){
    290     jsval jsstr = STRING_TO_JSVAL(JS_NewString(cx,tmpm->value,strlen(tmpm->value)));
     311    jsval jsstr = STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpm->value,strlen(tmpm->value)));
    291312    JS_SetProperty(cx, res, tmpm->name,&jsstr);
    292313#ifdef JS_DEBUG
     
    335356      fprintf(stderr,"Properties length :  %d \n",idp->length);
    336357#endif
     358      tres=(maps*)malloc(MAPS_SIZE);
     359      tres->name=NULL;
     360      tres->content=NULL;
     361      tres->next=NULL;
     362
    337363      for (index=0,argNum=idp->length;index<argNum;index++) {
    338364        jsval id = idp->vector[index];
     
    346372        len1 = JS_GetStringLength(jsmsg);
    347373#ifdef JS_DEBUG
    348         fprintf(stderr,"Enumerate id : %d => %s\n",oi,JS_GetStringBytes(jsmsg));
     374        fprintf(stderr,"Enumerate id : %d => %s\n",oi,JS_EncodeString(cx,jsmsg));
    349375#endif
    350376        jsval nvp=JSVAL_NULL;
    351         if((JS_GetProperty(cx, JSVAL_TO_OBJECT(tmp1), JS_GetStringBytes(jsmsg), &nvp)==JS_FALSE))
    352 #ifdef JS_DEBUG
    353         fprintf(stderr,"Enumerate id : %d => %s => No more value\n",oi,JS_GetStringBytes(jsmsg));
    354 #endif
     377        if((JS_GetProperty(cx, JSVAL_TO_OBJECT(tmp1), JS_EncodeString(cx,jsmsg), &nvp)==JS_FALSE)){
     378#ifdef JS_DEBUG
     379          fprintf(stderr,"Enumerate id : %d => %s => No more value\n",oi,JS_EncodeString(cx,jsmsg));
     380#endif
     381        }
     382       
    355383        if(JSVAL_IS_OBJECT(nvp)){
    356384#ifdef JS_DEBUG
     
    358386#endif
    359387        }
    360 #ifdef JS_DEBUG
    361         else
    362           fprintf(stderr,"JSVAL NVP IS NOT OBJECT !!\n");
    363 #endif
    364         JSObject *nvp1;
     388
     389        JSObject *nvp1=JSVAL_NULL;
    365390        JS_ValueToObject(cx,nvp,&nvp1);
    366391        jsval nvp1j=OBJECT_TO_JSVAL(nvp1);
    367392        if(JSVAL_IS_OBJECT(nvp1j)){
    368 #ifdef JS_DEBUG
    369           fprintf(stderr,"JSVAL NVP1J IS OBJECT\n");
    370 #endif
    371           tres=(maps*)malloc(MAPS_SIZE);
    372           tres->name=strdup(JS_GetStringBytes(jsmsg));
    373           tres->content=mapFromJSObject(cx,nvp1j);
    374           tres->next=NULL;
    375 #ifdef JS_DEBUG
    376           dumpMaps(res);
    377 #endif
    378           if(res==NULL)
    379             res=dupMaps(&tres);
     393          JSString *jsmsg1;
     394          JSObject *nvp2=JSVAL_NULL;
     395          jsmsg1 = JS_ValueToString(cx,nvp1j);
     396          len1 = JS_GetStringLength(jsmsg1);
     397          //#ifdef JS_DEBUG
     398          fprintf(stderr,"JSVAL NVP1J IS OBJECT %s = %s\n",JS_EncodeString(cx,jsmsg),JS_EncodeString(cx,jsmsg1));
     399          //#endif
     400          if(strcasecmp(JS_EncodeString(cx,jsmsg1),"[object Object]")==0){
     401            tres->name=strdup(JS_EncodeString(cx,jsmsg));
     402            tres->content=mapFromJSObject(cx,nvp1j);
     403          }
    380404          else
    381             addMapsToMaps(&res,tres);
    382           freeMaps(&tres);
    383           free(tres);
    384           tres=NULL;
    385 #ifdef JS_DEBUG
    386           dumpMaps(res);
    387 #endif
     405            if(strcasecmp(JS_EncodeString(cx,jsmsg),"name")==0){
     406              tres->name=strdup(JS_EncodeString(cx,jsmsg1));
     407            }
     408            else{
     409              if(tres->content==NULL)
     410                tres->content=createMap(JS_EncodeString(cx,jsmsg),JS_EncodeString(cx,jsmsg1));
     411              else
     412                addToMap(tres->content,JS_EncodeString(cx,jsmsg),JS_EncodeString(cx,jsmsg1));
     413            }
    388414        }
    389415#ifdef JS_DEBUG
     
    391417          fprintf(stderr,"JSVAL NVP1J IS NOT OBJECT !!\n");
    392418#endif
     419
    393420      }
     421      //#ifdef JS_DEBUG
     422      dumpMaps(tres);
     423      //#endif
     424      if(res==NULL)
     425        res=dupMaps(&tres);
     426      else
     427        addMapsToMaps(&res,tres);
     428      freeMaps(&tres);
     429      free(tres);
     430      tres=NULL;
     431
    394432    }
    395433  }
    396 #ifdef JS_DEBUG
     434  //#ifdef JS_DEBUG
    397435  dumpMaps(res);
    398 #endif
     436  //#endif
    399437  return res;
    400438}
     
    423461      len = JS_GetStringLength(jsmsg);
    424462      jsval nvp;
    425       JS_GetProperty(cx, JSVAL_TO_OBJECT(t), JS_GetStringBytes(jsmsg), &nvp);
     463      JS_GetProperty(cx, JSVAL_TO_OBJECT(t), JS_EncodeString(cx,jsmsg), &nvp);
    426464      jsmsg1 = JS_ValueToString(cx,nvp);
    427465      len1 = JS_GetStringLength(jsmsg1);
    428466#ifdef JS_DEBUG
    429       fprintf(stderr,"Enumerate id : %d [ %s => %s ]\n",index,JS_GetStringBytes(jsmsg),JS_GetStringBytes(jsmsg1));
     467      fprintf(stderr,"Enumerate id : %d [ %s => %s ]\n",index,JS_EncodeString(cx,jsmsg),JS_EncodeString(cx,jsmsg1));
    430468#endif
    431469      if(res!=NULL){
    432470#ifdef JS_DEBUG
    433         fprintf(stderr,"%s - %s\n",JS_GetStringBytes(jsmsg),JS_GetStringBytes(jsmsg1));
    434 #endif
    435         addToMap(res,JS_GetStringBytes(jsmsg),JS_GetStringBytes(jsmsg1));
     471        fprintf(stderr,"%s - %s\n",JS_EncodeString(cx,jsmsg),JS_EncodeString(cx,jsmsg1));
     472#endif
     473        addToMap(res,JS_EncodeString(cx,jsmsg),JS_EncodeString(cx,jsmsg1));
    436474      }
    437475      else{
    438         res=createMap(JS_GetStringBytes(jsmsg),JS_GetStringBytes(jsmsg1));
     476        res=createMap(JS_EncodeString(cx,jsmsg),JS_EncodeString(cx,jsmsg1));
    439477        res->next=NULL;
    440478      }
  • trunk/zoo-kernel/service_internal_js.h

    r42 r274  
    5252  int zoo_js_support(maps**,map*,service*,maps **,maps **);
    5353
    54   JSScript *loadZooApiFile(JSContext*,JSObject*,char*);
     54  JSObject *loadZooApiFile(JSContext*,JSObject*,char*);
    5555
    5656#ifdef __cplusplus
  • trunk/zoo-kernel/ulinet.c

    r93 r274  
    385385  jsmsg = JS_ValueToString(context,*arg);
    386386  len = JS_GetStringLength(jsmsg);
    387   tmp = JS_GetStringBytes(jsmsg);
     387  tmp = JS_EncodeString(context,jsmsg);
    388388  c = (char*)malloc((len+1)*sizeof(char));
    389389  c[len] = '\0';
     
    435435
    436436JSBool
    437 JSRequest(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
     437JSRequest(JSContext *cx, uintN argc, jsval *argv1)
    438438{
     439  jsval *argv = JS_ARGV(cx,argv1);
    439440  HINTERNET hInternet;
    440441  char *url;
     
    488489  fprintf(stderr,"content downloaded (%d) (%s) \n",dwRead,tmpValue);
    489490#endif
    490   *rval=STRING_TO_JSVAL(JS_NewString(cx,tmpValue,strlen(tmpValue)));
     491  JS_SET_RVAL(cx, argv1,STRING_TO_JSVAL(JS_NewStringCopyN(cx,tmpValue,strlen(tmpValue))));
    491492  free(url);
    492493  if(argc>=2)
  • trunk/zoo-kernel/ulinet.h

    r1 r274  
    138138
    139139#ifdef USE_JS
    140 JSBool JSRequest(JSContext*, JSObject*, uintN, jsval*, jsval*);
     140JSBool JSRequest(JSContext*, uintN, jsval*);
    141141#endif
    142142
  • trunk/zoo-kernel/zoo_service_loader.c

    r260 r274  
    16321632               * Title, Asbtract
    16331633               */
    1634               if(xmlStrncasecmp(cur2->name,BAD_CAST "Title",xmlStrlen(cur2->name))==0 ||
     1634              else if(xmlStrncasecmp(cur2->name,BAD_CAST "Title",xmlStrlen(cur2->name))==0 ||
    16351635                 xmlStrncasecmp(cur2->name,BAD_CAST "Abstract",xmlStrlen(cur2->name))==0){
    16361636                xmlChar *val=
Note: See TracChangeset for help on using the changeset viewer.

Search

Context Navigation

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png