Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1598)

Side by Side Diff: native_client_sdk/src/libraries/nacl_io/node.cc

Issue 660353003: [NaCl SDK] nacl_io: Fix utime() on directories. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "nacl_io/node.h" 5 #include "nacl_io/node.h"
6 6
7 #include <assert.h> 7 #include <assert.h>
8 #include <errno.h> 8 #include <errno.h>
9 #include <fcntl.h> 9 #include <fcntl.h>
10 #include <poll.h> 10 #include <poll.h>
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 182
183 Error Node::Fchmod(mode_t mode) { 183 Error Node::Fchmod(mode_t mode) {
184 return EINVAL; 184 return EINVAL;
185 } 185 }
186 186
187 int Node::GetLinks() { 187 int Node::GetLinks() {
188 return stat_.st_nlink; 188 return stat_.st_nlink;
189 } 189 }
190 190
191 int Node::GetMode() { 191 int Node::GetMode() {
192 return stat_.st_mode & ~S_IFMT; 192 return stat_.st_mode & 0777;
193 } 193 }
194 194
195 Error Node::GetSize(off_t* out_size) { 195 Error Node::GetSize(off_t* out_size) {
196 *out_size = stat_.st_size; 196 *out_size = stat_.st_size;
197 return 0; 197 return 0;
198 } 198 }
199 199
200 int Node::GetType() { 200 int Node::GetType() {
201 return stat_.st_mode & S_IFMT; 201 return stat_.st_mode & S_IFMT;
202 } 202 }
203 203
204 void Node::SetType(int type) { 204 void Node::SetType(int type) {
205 assert((type & ~S_IFMT) == 0); 205 assert((type & ~S_IFMT) == 0);
206 stat_.st_mode &= ~S_IFMT;
207 stat_.st_mode |= type; 206 stat_.st_mode |= type;
208 } 207 }
209 208
210 void Node::SetMode(int mode) { 209 void Node::SetMode(int mode) {
211 assert((mode & S_IFMT) == 0); 210 assert((mode & ~0777) == 0);
212 stat_.st_mode &= S_IFMT; 211 stat_.st_mode &= ~0777;
213 stat_.st_mode |= mode; 212 stat_.st_mode |= mode;
214 } 213 }
215 214
216 bool Node::IsaDir() { 215 bool Node::IsaDir() {
217 return GetType() == S_IFDIR; 216 return GetType() == S_IFDIR;
218 } 217 }
219 218
220 bool Node::IsaFile() { 219 bool Node::IsaFile() {
221 return GetType() == S_IFREG; 220 return GetType() == S_IFREG;
222 } 221 }
(...skipping 25 matching lines...) Expand all
248 247
249 void Node::Link() { 248 void Node::Link() {
250 stat_.st_nlink++; 249 stat_.st_nlink++;
251 } 250 }
252 251
253 void Node::Unlink() { 252 void Node::Unlink() {
254 stat_.st_nlink--; 253 stat_.st_nlink--;
255 } 254 }
256 255
257 } // namespace nacl_io 256 } // namespace nacl_io
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698