diff options
author | tradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2003-01-07 16:16:13 +0000 |
---|---|---|
committer | tradke <tradke@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2003-01-07 16:16:13 +0000 |
commit | f1bdf36da62131c23804e17a6542323b13c7263d (patch) | |
tree | c2a3fe98d88064ac1fe918bfe59613fb7b4d55d8 /lib/sbin/create_c_stuff.pl | |
parent | 6ba1dd6feffb75a396d541b59bddbb7deb137438 (diff) |
Erik Schnetter's patch to declare string parameters in a thorn's parameter
struct as constant. Completes the fix for Cactus-1350.
git-svn-id: http://svn.cactuscode.org/flesh/trunk@3079 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/sbin/create_c_stuff.pl')
-rw-r--r-- | lib/sbin/create_c_stuff.pl | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/lib/sbin/create_c_stuff.pl b/lib/sbin/create_c_stuff.pl index 34aba7de..eb768eb7 100644 --- a/lib/sbin/create_c_stuff.pl +++ b/lib/sbin/create_c_stuff.pl @@ -38,7 +38,7 @@ sub CreateParameterBindingFile foreach $parameter (&order_params($rhparameters,$rhparameter_db)) { my $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"}; - my ($type_string) = &get_c_type_string($type); + my $type_string = &get_c_type_string($type); my $realname = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E realname"}; @@ -72,24 +72,21 @@ sub CreateParameterBindingFile # @date Mon Jan 11 15:33:50 1999 # @author Tom Goodale # @desc -# Returns the correct type string for a parameter, both for declaring it -# as modifiable member of a structure as well as a assign-once local variable +# Returns the correct type string for a parameter. # @enddesc #@@*/ sub get_c_type_string { my($type) = @_; - my($type_string, $decl_type_string); + my $type_string; - $decl_type_string = ''; if($type eq 'KEYWORD' || $type eq 'STRING' || $type eq 'SENTENCE') { - $type_string = 'char *'; - $decl_type_string = 'char *const'; + $type_string = 'const char *'; } elsif($type eq 'BOOLEAN') { @@ -131,14 +128,8 @@ sub get_c_type_string { &CST_error(0,"Unknown parameter type '$type'",'',__LINE__,__FILE__); } - if (! $decl_type_string) - { - $decl_type_string = $type_string; - } - # add the const qualifier for assign-once local variables - $decl_type_string = "const $decl_type_string"; - return ($type_string, $decl_type_string); + return $type_string; } @@ -192,7 +183,7 @@ sub CreateCStructureParameterHeader foreach $parameter (&order_params($rhparameters, $rhparameter_db)) { my $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"}; - my ($type_string, $decl_type_string) = &get_c_type_string($type); + my $type_string = &get_c_type_string($type); my $array_size = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E array_size"}; @@ -201,14 +192,14 @@ sub CreateCStructureParameterHeader if($array_size) { - $varprefix = '*const '; + $varprefix = ' const *'; $suffix = "[$array_size]"; } my $realname = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E realname"}; push(@data, " $type_string $realname$suffix;"); - push(@definition, " $decl_type_string $varprefix$parameter = $structure.$realname; \\"); + push(@definition, " $type_string$varprefix const $parameter = $structure.$realname; \\"); push(@use, " (void) ($parameter + 0); \\"); } |