You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucy.apache.org by "Marvin Humphrey (JIRA)" <ji...@apache.org> on 2009/11/19 17:47:39 UTC

[jira] Created: (LUCY-68) Simplify Charmonizer internal string handling

Simplify Charmonizer internal string handling
---------------------------------------------

                 Key: LUCY-68
                 URL: https://issues.apache.org/jira/browse/LUCY-68
             Project: Lucy
          Issue Type: Improvement
          Components: Charmonizer
            Reporter: Marvin Humphrey
            Assignee: Marvin Humphrey
            Priority: Minor


Charmonizer's string handling utilities were originally set up so that buffer
lengths were passed around with every char*, and so that NULLs could be
embedded in strings without problems.  This was misguided, because Charmonizer
does not deal with untrusted user data, and there are as yet no cases where
Charmonizer has needed to embed NULLs on its own.

As a side effect of the implementation, Charmonizer is relatively efficient
when it comes to memory allocation -- which is of course completely worthless
in the context of launching external compilation processes.

The goal will be to replace the current system with more idiomatic C
NULL-terminated strings, and throw string-handling efficiency concerns to the
winds in pursuit of code clarity.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (LUCY-68) Simplify Charmonizer internal string handling

Posted by "Marvin Humphrey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LUCY-68?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marvin Humphrey resolved LUCY-68.
---------------------------------

    Resolution: Fixed

> Simplify Charmonizer internal string handling
> ---------------------------------------------
>
>                 Key: LUCY-68
>                 URL: https://issues.apache.org/jira/browse/LUCY-68
>             Project: Lucy
>          Issue Type: Improvement
>          Components: Charmonizer
>            Reporter: Marvin Humphrey
>            Assignee: Marvin Humphrey
>            Priority: Minor
>         Attachments: string_handling.diff
>
>
> Charmonizer's string handling utilities were originally set up so that buffer
> lengths were passed around with every char*, and so that NULLs could be
> embedded in strings without problems.  This was misguided, because Charmonizer
> does not deal with untrusted user data, and there are as yet no cases where
> Charmonizer has needed to embed NULLs on its own.
> As a side effect of the implementation, Charmonizer is relatively efficient
> when it comes to memory allocation -- which is of course completely worthless
> in the context of launching external compilation processes.
> The goal will be to replace the current system with more idiomatic C
> NULL-terminated strings, and throw string-handling efficiency concerns to the
> winds in pursuit of code clarity.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (LUCY-68) Simplify Charmonizer internal string handling

Posted by "Marvin Humphrey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/LUCY-68?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marvin Humphrey updated LUCY-68:
--------------------------------

    Attachment: string_handling.diff

I committed string_handling.diff as r883210.  It removes most of the string
handling functions that were in Charmonizer/Core/Util and replaces them with
local use of malloc(), free() and sprintf().  

> Simplify Charmonizer internal string handling
> ---------------------------------------------
>
>                 Key: LUCY-68
>                 URL: https://issues.apache.org/jira/browse/LUCY-68
>             Project: Lucy
>          Issue Type: Improvement
>          Components: Charmonizer
>            Reporter: Marvin Humphrey
>            Assignee: Marvin Humphrey
>            Priority: Minor
>         Attachments: string_handling.diff
>
>
> Charmonizer's string handling utilities were originally set up so that buffer
> lengths were passed around with every char*, and so that NULLs could be
> embedded in strings without problems.  This was misguided, because Charmonizer
> does not deal with untrusted user data, and there are as yet no cases where
> Charmonizer has needed to embed NULLs on its own.
> As a side effect of the implementation, Charmonizer is relatively efficient
> when it comes to memory allocation -- which is of course completely worthless
> in the context of launching external compilation processes.
> The goal will be to replace the current system with more idiomatic C
> NULL-terminated strings, and throw string-handling efficiency concerns to the
> winds in pursuit of code clarity.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.