Mercurial > hg > octave-nkf
annotate liboctave/tempnam.c @ 15078:fe4752f772e2
Generate ND indexing functions on demand in JIT.
* src/jit-typeinfo.cc (jit_operation::~jit_operation,
jit_operation::do_generate, jit_operation::generate,
jit_operation::signature_cmp::operator()): New function.
(jit_operation::overload): Call do_generate when lookup fails.
(jit_index_operation, jit_paren_subsref, jit_paren_subsasgn): New class.
(jit_typeinfo::jit_typeinfo): Update to use jit_paren_subsref and
jit_paren_subsasgn.
(jit_typeinfo::gen_subsref, jit_typeinfo::gen_subsasgn): Removed functions.
* src/jit-typeinfo.h (jit_operation::~jit_operation, jit_operation::generate,
jit_operation::do_generate): New declaration.
(jit_operation::add_overload, jit_operation::overload, jit_operation::result,
jit_operation::to_idx): Use signature_vec typedef.
(jit_operation::singature_cmp): New class.
(jit_index_operation, jit_paren_subsref, jit_paren_subsasgn): New class.
(jit_typeinfo::get_scalar_ptr): Nwe function.
(jit_typeinfo::gen_subsref, jit_typeinfo::gen_subsasgn): Removed declaration.
* src/pt-jit.cc: New test.
author | Max Brister <max@2bass.com> |
---|---|
date | Wed, 01 Aug 2012 17:00:12 -0500 |
parents | 3d8ace26c5b4 |
children |
rev | line source |
---|---|
1048 | 1 /* Copyright (C) 1991, 1993 Free Software Foundation, Inc. |
2 This file is part of the GNU C Library. | |
3 | |
4 The GNU C Library is free software; you can redistribute it and/or | |
5 modify it under the terms of the GNU Library General Public License as | |
6 published by the Free Software Foundation; either version 2 of the | |
7 License, or (at your option) any later version. | |
8 | |
9 The GNU C Library is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
12 Library General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU Library General Public | |
15 License along with the GNU C Library; see the file COPYING.LIB. If | |
5307 | 16 not, write to the Free Software Foundation, Inc., 51 Franklin Street, |
17 Fifth Floor, Boston, MA 02110-1301, USA. */ | |
1048 | 18 |
19 #ifdef HAVE_CONFIG_H | |
1243 | 20 #include <config.h> |
1048 | 21 #endif |
22 | |
23 #ifndef HAVE_TEMPNAM | |
24 | |
25 #include <stddef.h> | |
1351 | 26 #include <stdio.h> |
1048 | 27 #include <stdlib.h> |
28 #include <string.h> | |
29 | |
30 extern char *__stdio_gen_tempname (const char *dir, const char *pfx, | |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
5307
diff
changeset
|
31 int dir_search, size_t *lenptr, |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
5307
diff
changeset
|
32 FILE **streamptr); |
1048 | 33 |
34 /* Generate a unique temporary filename using up to five characters of PFX | |
35 if it is not NULL. The directory to put this file in is searched for | |
36 as follows: First the environment variable "TMPDIR" is checked. | |
37 If it contains the name of a writable directory, that directory is used. | |
38 If not and if DIR is not NULL, that value is checked. If that fails, | |
39 P_tmpdir is tried and finally "/tmp". The storage for the filename | |
40 is allocated by `malloc'. */ | |
41 char * | |
42 tempnam (const char *dir, const char *pfx) | |
43 { | |
44 size_t len; | |
45 register char *s; | |
15018
3d8ace26c5b4
maint: Use Octave coding conventions for cuddled parentheses in liboctave/.
Rik <rik@octave.org>
parents:
10317
diff
changeset
|
46 register char *t = __stdio_gen_tempname (dir, pfx, 1, &len, (FILE **) NULL); |
1048 | 47 |
48 if (t == NULL) | |
49 return NULL; | |
50 | |
15018
3d8ace26c5b4
maint: Use Octave coding conventions for cuddled parentheses in liboctave/.
Rik <rik@octave.org>
parents:
10317
diff
changeset
|
51 s = (char *) malloc (len); |
1048 | 52 if (s == NULL) |
53 return NULL; | |
54 | |
15018
3d8ace26c5b4
maint: Use Octave coding conventions for cuddled parentheses in liboctave/.
Rik <rik@octave.org>
parents:
10317
diff
changeset
|
55 (void) memcpy (s, t, len); |
1048 | 56 return s; |
57 } | |
58 | |
59 #endif |