On Friday, 21 November 2014 09:44:27 UTC-6, Steven G. Johnson wrote:
>
>
> On Thursday, November 20, 2014 5:37:22 PM UTC-5, Eric Davies wrote:
>>
>> (For context, I'm working on this issue: 
>> https://github.com/JuliaOpt/ECOS.jl/issues/12 and dealing with these 
>> structs: 
>> https://github.com/JuliaOpt/ECOS.jl/blob/master/src/types.jl#L124-L216 )
>>
>> I have a C struct used in a 3rd-party C library mirrored as an immutable 
>> in Julia. A pointer to the C struct is returned in another C struct, and I 
>> get the immutable using pointer_to_array(...)[1]. I want to be able to 
>> modify fields of the struct in-place, but immutables disallow this. How do 
>> I go about this? 
>>
>
> Why not just use pointer_to_array(...)[1] = ...new immutable..., or 
> unsafe_store!(pointer-to-immutable, new immutable) to store a new struct 
> (build from the old struct + modifications) in the old location?
>

I did not know you could do those things, thanks. In general I feel that 
set of functions is not well-explained in the documentation.

I wish there was a way to programmatically create an immutable from another 
immutable and modified field names/values. I think my solution right now is 
iterate over all the fields in order and check if they're to be modified, 
store the resulting modified+unchanged values into a list and splat the 
list in the constructor. Seems like there could be a better way to do it.  

Reply via email to