src/os/solaris/vm/perfMemory_solaris.cpp

changeset 1788
a2ea687fdc7c
parent 1040
98cb887364d3
child 1907
c18cbe5936b8
equal deleted inserted replaced
1765:4a9cc99938e3 1788:a2ea687fdc7c
145 // 145 //
146 static char* get_user_tmp_dir(const char* user) { 146 static char* get_user_tmp_dir(const char* user) {
147 147
148 const char* tmpdir = os::get_temp_directory(); 148 const char* tmpdir = os::get_temp_directory();
149 const char* perfdir = PERFDATA_NAME; 149 const char* perfdir = PERFDATA_NAME;
150 size_t nbytes = strlen(tmpdir) + strlen(perfdir) + strlen(user) + 2; 150 size_t nbytes = strlen(tmpdir) + strlen(perfdir) + strlen(user) + 3;
151 char* dirname = NEW_C_HEAP_ARRAY(char, nbytes); 151 char* dirname = NEW_C_HEAP_ARRAY(char, nbytes);
152 152
153 // construct the path name to user specific tmp directory 153 // construct the path name to user specific tmp directory
154 snprintf(dirname, nbytes, "%s%s_%s", tmpdir, perfdir, user); 154 snprintf(dirname, nbytes, "%s/%s_%s", tmpdir, perfdir, user);
155 155
156 return dirname; 156 return dirname;
157 } 157 }
158 158
159 // convert the given file name into a process id. if the file 159 // convert the given file name into a process id. if the file
320 if (strncmp(dentry->d_name, PERFDATA_NAME, strlen(PERFDATA_NAME)) != 0) { 320 if (strncmp(dentry->d_name, PERFDATA_NAME, strlen(PERFDATA_NAME)) != 0) {
321 continue; 321 continue;
322 } 322 }
323 323
324 char* usrdir_name = NEW_C_HEAP_ARRAY(char, 324 char* usrdir_name = NEW_C_HEAP_ARRAY(char,
325 strlen(tmpdirname) + strlen(dentry->d_name) + 1); 325 strlen(tmpdirname) + strlen(dentry->d_name) + 2);
326 strcpy(usrdir_name, tmpdirname); 326 strcpy(usrdir_name, tmpdirname);
327 strcat(usrdir_name, "/");
327 strcat(usrdir_name, dentry->d_name); 328 strcat(usrdir_name, dentry->d_name);
328 329
329 DIR* subdirp = os::opendir(usrdir_name); 330 DIR* subdirp = os::opendir(usrdir_name);
330 331
331 if (subdirp == NULL) { 332 if (subdirp == NULL) {

mercurial