I did some tries with no success.
If I have this declaration:
*int p3stuff(char *imgUrl, unsigned char *wrappedkey);*
How can I make sure the contents of imgUrl will persist even out of the
scope?
Because it's a pointer so maybe I need to malloc first the space and then
memcpy the contents?
Suppose I have a global var like this *char *imageUrl;* I'd be very
thankful if you can provide me an example.

2015-10-20 15:57 GMT-07:00 Alon Zakai <[email protected]>:

> Yes, if you want something to live beyond the current function call, you
> should use malloc(). That will only be reused after you call free() on it.
>
> On Tue, Oct 20, 2015 at 3:51 PM, Pau Ballart <[email protected]> wrote:
>
>> Updated to 1.35 but same problem...
>> Maybe the question to formulate would be: How can I save in a
>> global/static variable some information so that I can acces it later in the
>> callback function and make sure it's not overwritten?
>> What do you think about using malloc() somehow? Would it work?
>>
>> 2015-10-20 14:18 GMT-07:00 Alon Zakai <[email protected]>:
>>
>>> Might be worth trying current master (or incoming) then, which is now
>>> 1.35.0.
>>>
>>> On Tue, Oct 20, 2015 at 2:16 PM, Pau Ballart <[email protected]> wrote:
>>>
>>>> $ emcc -v
>>>> emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld)
>>>> 1.34.8
>>>> clang version 3.7.0
>>>> Target: x86_64-apple-darwin15.0.0
>>>> Thread model: posix
>>>> INFO     root: (Emscripten: Running sanity checks)
>>>>
>>>> 2015-10-20 14:05 GMT-07:00 Alon Zakai <[email protected]>:
>>>>
>>>>> 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 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

-- 
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