File tree Expand file tree Collapse file tree 2 files changed +12
-3
lines changed
branches/incoming/src/libcore Expand file tree Collapse file tree 2 files changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ refs/heads/try: 3d5418789064fdb463e872a4e651af1c628a3650
6
6
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
7
7
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8
8
refs/heads/try2: a810c03263670238bccd64cabb12a23a46e3a278
9
- refs/heads/incoming: 26334b64a29612be8190bedfbd507fa6ac6f8eb5
9
+ refs/heads/incoming: 07c39b1436f07b3a88daa39a3fc021c4bb3208e5
10
10
refs/heads/dist-snap: 22efa39382d41b084fde1719df7ae8ce5697d8c9
11
11
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
12
12
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
Original file line number Diff line number Diff line change @@ -452,10 +452,19 @@ pub fn self_exe_path() -> Option<Path> {
452
452
fn load_self ( ) -> Option < ~str > {
453
453
unsafe {
454
454
use libc:: funcs:: posix01:: unistd:: readlink;
455
- do fill_charp_buf ( ) |buf, sz| {
455
+
456
+ let mut path_str = str:: with_capacity ( tmpbuf_sz) ;
457
+ let len = do str:: as_c_str ( path_str) |buf| {
458
+ let buf = buf as * mut c_char ;
456
459
do as_c_charp( "/proc/self/exe" ) |proc_self_buf| {
457
- readlink ( proc_self_buf, buf, sz ) != ( - 1 as ssize_t )
460
+ readlink ( proc_self_buf, buf, tmpbuf_sz as size_t )
458
461
}
462
+ } ;
463
+ if len == -1 {
464
+ None
465
+ } else {
466
+ str:: raw:: set_len ( & mut path_str, len as uint ) ;
467
+ Some ( path_str)
459
468
}
460
469
}
461
470
}
You can’t perform that action at this time.
0 commit comments