- int length = 256;
- char* buffer = reinterpret_cast< char* >( calloc ( 1, length * sizeof ( char ) ) );
- if( buffer != NULL )
- {
- ecore_imf_context_input_panel_imdata_get( mIMFContext, buffer, &length );
- data = buffer;
- free( buffer );
- }
+ int length = 4096; // The max length is 4096 bytes
+ Dali::Vector< char > buffer;
+ buffer.Resize( length );
+ ecore_imf_context_input_panel_imdata_get( mIMFContext, &buffer[0], &length );
+ data = std::string( buffer.Begin(), buffer.End() );