Check-in [633a01c5d6]
Overview
Comment:Added support for a ClientData type
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 633a01c5d6e01f115a0e267f9557ac4075658a01
User & Date: rkeene on 2016-01-25 18:18:24
Other Links: manifest | tags
Context
2016-01-25
18:31
Added support for a ClientData type check-in: 91b1a5ba3d user: rkeene tags: trunk
18:18
Added support for a ClientData type check-in: 633a01c5d6 user: rkeene tags: trunk
18:09
Updated to respect --prefix check-in: 4395e6083a user: rkeene tags: trunk
Changes

Modified test.tcl from [8b959926b0] to [da5a97590a].

103
104
105
106
107
108
109

110
111
112
113
114
115
116
# Produce a loadable object
## Currently doesn't work on Darwin
if {[info exists ::env(TCC4TCL_TEST_RUN_NATIVE)] && $::tcl_platform(os) != "Darwin"} {
	set tmpfile "/tmp/DELETEME_tcc4tcl_test_exec[expr rand()].so"
	file delete $tmpfile
	set handle [tcc4tcl::new $tmpfile "myPkg 0.1"]
	$handle cproc ext_add {int a int b} long { return(a+b); }

	$handle add_library_path [::tcl::pkgconfig get libdir,runtime]
	$handle add_library_path /usr/lib/x86_64-linux-gnu
	$handle add_library_path /usr/lib64
	$handle add_library_path /usr/lib
	$handle add_library_path /usr/lib32
	$handle add_library tclstub${::tcl_version}
	$handle go







>







103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# Produce a loadable object
## Currently doesn't work on Darwin
if {[info exists ::env(TCC4TCL_TEST_RUN_NATIVE)] && $::tcl_platform(os) != "Darwin"} {
	set tmpfile "/tmp/DELETEME_tcc4tcl_test_exec[expr rand()].so"
	file delete $tmpfile
	set handle [tcc4tcl::new $tmpfile "myPkg 0.1"]
	$handle cproc ext_add {int a int b} long { return(a+b); }
	$handle add_include_path [::tcl::pkgconfig get includedir,runtime]
	$handle add_library_path [::tcl::pkgconfig get libdir,runtime]
	$handle add_library_path /usr/lib/x86_64-linux-gnu
	$handle add_library_path /usr/lib64
	$handle add_library_path /usr/lib
	$handle add_library_path /usr/lib32
	$handle add_library tclstub${::tcl_version}
	$handle go
178
179
180
181
182
183
184

























}
$handle cproc callToTclBinaryWrapper {} void {
	callToTclBinary("test\x00test", 9);
}
puts [$handle code]
$handle go
callToTclBinaryWrapper
































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
}
$handle cproc callToTclBinaryWrapper {} void {
	callToTclBinary("test\x00test", 9);
}
puts [$handle code]
$handle go
callToTclBinaryWrapper

set handle [tcc4tcl::new]
$handle cproc testClientData {int y} {int} [concat "int x = 3;" {
	return(x + y);
}]
$handle go
set testVal [testClientData 1]
if {$testVal != "4"} {
	error "\[ClientData\] Invalid value: $testVal, should have been 4"
}

set handle [tcc4tcl::new]
$handle cproc testClientData {ClientData _x=3 int y} {int} {
	int x

	Tcl_GetIntFromObj(NULL, _x, &x);

	return(x + y);
}
set testVal [testClientData 1]
if {$testVal != "4"} {
	error "\[ClientData\] Invalid value: $testVal, should have been 4"
}

exit 0