One possible issue is that if those values are on the stack, and the scope
exits, then that stack memory might be reused. For example this is unsafe:

{
  char buffer[100];
  // write into buffer
  emscripten_async_wget(..., (void*)buffer);
}

The buffer will be released before the async callback occurs, and other
data might be written into it before the callback reads from it.

Which version of emscripten are you using, btw? I remember a while back we
had a bug around this.

On Tue, Oct 20, 2015 at 1:36 PM, Pau Ballart <[email protected]> wrote:

> Hello,
>
> After some research and some refactor I did the following:
>
>    - In my p3stuff function I call emscripten_set_main_loop(wait_wgets,
>    0, 0); so the application is not terminated.
>    - In wait_wgets I call the emscripten_async_wget(imageUrl, path,
>    onLoaded, onError); only the first time the method is called.
>    - In the onLoaded callback I call emscripten_cancel_main_loop(); and
>    then I call my c code that perform the jpeg stuff.
>
> Problem is:
> the p3stuff function has 2 arguments: int p3stuff(char *imgUrl, unsigned
> char *wrappedkey)
> When it's called i have two global variables unsigned char *wrappedKey;
> and char *imageUrl; which are assigned with the argument like that:
>
> wrappedKey = wrappedkey;
> imageUrl = imgUrl;
>
> I do that in order to access the image url from the wait_wgets() or the
> wrapped key from the onLoaded callback but I think there is some memory
> management problems cause if I print the url just before calling
> emscripten_async_wget the imageUrl variable content is completely rubbish
> but id I don't print anything it works.
>
> So how can I use the global variables in C in order to not get
> overwritten? Maybe using malloc, or memcopy?
>
> Thanks,
>
> Pau
>
> 2015-10-19 10:53 GMT-07:00 Pau Ballart <[email protected]>:
>
>> Okay I will try the async version and let you know.
>>
>> Thanks
>>
>> 2015-10-17 19:37 GMT-07:00 Alon Zakai <[email protected]>:
>>
>>> The only tricky thing with emscripten_wget is that as mentioned in the
>>> docs,
>>>
>>>
>>> http://kripken.github.io/emscripten-site/docs/api_reference/emscripten.h.html#c.emscripten_wget
>>>
>>> it requires the ASYNCIFY option. It's easier in general to use the async
>>> version, emscripten_async_wget, which does not require ASYNCIFY.
>>>
>>>
>>> On Sat, Oct 17, 2015 at 10:47 AM, Pau Ballart <[email protected]>
>>> wrote:
>>>
>>>> I think the php code is correct so I'm just trying to download an image
>>>> and process it's data but I think I'm missing something about the lifecycle
>>>> or wget function because I get unexpected exit errors.
>>>>
>>>> So I'd like to know if the  emscripten_wget(imgUrl, path); is correct
>>>> because I have the weirdest behaviour ever that depending on the p3stuff
>>>> function param "wrappedkey" the download succeeds or not.
>>>>
>>>> 2015-10-15 17:07 GMT-07:00 Alon Zakai <[email protected]>:
>>>>
>>>>> I see you have
>>>>>
>>>>> P3Func = Module.cwrap('p3stuff', 'number', ['string', 'string']);
>>>>>
>>>>> which looks good.  You can then call it with something like
>>>>>
>>>>> result = P3Func('first', 'second');
>>>>>
>>>>> which I see you are doing. What part of that are you trying to improve?
>>>>>
>>>>>
>>>>> On Thu, Oct 15, 2015 at 12:59 PM, Pau Ballart <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Okay so the php is just calling a function I declared. Because I need
>>>>>> to pass the image url as an argument and a key, I don't know how to do it
>>>>>> using the main function so I changed the main function for this one with
>>>>>> the two arguments and then called this function from my php code.
>>>>>> Is there a better way to call emscripten passing parameters?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> 2015-10-15 12:55 GMT-07:00 Alon Zakai <[email protected]>:
>>>>>>
>>>>>>> It would be good to focus the question more, it's hard to tell what
>>>>>>> the core issue is. Try to reduce the problem to just one concrete thing,
>>>>>>> like just loading a file, and doing it without that custom PHP script, 
>>>>>>> for
>>>>>>> example.
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Oct 15, 2015 at 12:27 PM, Pau Ballart <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hello developers,
>>>>>>>>
>>>>>>>> I'm starting a project and I'm new at Javascript and emscripten.
>>>>>>>> I'm trying to download some image data from a server and then process 
>>>>>>>> it
>>>>>>>> using some c functions I already have working. I asked this question in
>>>>>>>> Stackoverflow so I share you the link and maybe one of you can help me.
>>>>>>>>
>>>>>>>>
>>>>>>>> http://stackoverflow.com/questions/33087205/emscripten-code-for-image-data-download-using-emscripten-wget-or-emscripten-asyn
>>>>>>>>
>>>>>>>> Thank you,
>>>>>>>>
>>>>>>>> Pau B
>>>>>>>>
>>>>>>>> --
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "emscripten-discuss" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>> send an email to [email protected].
>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>> the Google Groups "emscripten-discuss" group.
>>>>>>> To unsubscribe from this topic, visit
>>>>>>> https://groups.google.com/d/topic/emscripten-discuss/BEb-1mjDvZI/unsubscribe
>>>>>>> .
>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>> [email protected].
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Pau Ballart
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "emscripten-discuss" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to [email protected].
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to a topic in the
>>>>> Google Groups "emscripten-discuss" group.
>>>>> To unsubscribe from this topic, visit
>>>>> https://groups.google.com/d/topic/emscripten-discuss/BEb-1mjDvZI/unsubscribe
>>>>> .
>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>> [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Pau Ballart
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "emscripten-discuss" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "emscripten-discuss" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/emscripten-discuss/BEb-1mjDvZI/unsubscribe
>>> .
>>> To unsubscribe from this group and all its topics, send an email to
>>> [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>>
>> --
>> Pau Ballart
>>
>
>
>
> --
> Pau Ballart
>
> --
> You received this message because you are subscribed to the Google Groups
> "emscripten-discuss" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to