Bill Currie
249aee2e9f
move the OO runtime support code from libQFgamecode to libQFruamoko where
...
it really belongs :)
2004-01-16 08:02:31 +00:00
Bill Currie
acd54afff7
move to using a hash table for builtin number -> builtin lookup so sparse
...
ranges can be used efficiently. move the auto-allocated builtins to
0x10000000-0x7fffffff. should be more than enough :)
use static builtin tables ("nul" terminated) instead of a series of
function calls to add builtins to a vm. should be more memory efficient.
2004-01-06 05:51:09 +00:00
Bill Currie
dfc83c1f5f
add PR_PushFrame and PR_PopFrame so temp strings are easy to use for
...
parameters to progs functions.
double the progs stack sizes (call depth of 32? eek)
allow one extra call on the progs stack :)
misc minor cleanups
2004-01-05 07:10:32 +00:00
Bill Currie
211908e741
implement a couple more obj functions
2004-01-05 01:41:20 +00:00
Bill Currie
5f5662a063
PF_VarString return a plain char * and make it easier to add "at load" init
...
functions
2003-11-20 07:46:56 +00:00
Bill Currie
aa37db997c
check for null function
2003-09-18 22:50:42 +00:00
Bill Currie
cf93f5f65e
oops, who let C++ into C? :)
2003-08-25 01:47:05 +00:00
Bill Currie
5d8bebfff8
implement class_get_class_method and (partially) class_pose_as
2003-08-24 03:44:12 +00:00
Bill Currie
b50d283b28
make sel_get_uid and class_get_instance_method work
2003-08-23 22:16:42 +00:00
Bill Currie
edb716ada0
oops, forgot to remove developer forcing
2003-08-23 06:21:35 +00:00
Bill Currie
385a90e8fb
correct pr_symtab_t to include the pointer to the array of selectors used
...
in the module. Unfortunatly, this requires a version bump on both qfo and
progs files due to the changes structure layout.
2003-08-23 06:15:19 +00:00
Bill Currie
7ead5a91f8
don't let gcc automaticly inline functions but make gcc inline bigger
...
functions when told to. also make gcc warn if it can't inline a function.
Explicitly inline several functions (including moving VectorNormalize to
mathlib.h so it /can/ be) resulting in a 5.5% speedup for spam2 (88 to 92
fps)
2003-08-11 06:05:07 +00:00
Jeff Teunissen
f04d67f319
Nuke the old-style Object's dead built-in methods.
2003-08-01 16:42:02 +00:00
Bill Currie
dcd143f197
missing/incorrect symbols fixed
2003-07-30 17:44:38 +00:00
Bill Currie
3886723467
fix some builtin method names due to the selector name fixes in qfcc
2003-07-27 19:57:40 +00:00
Bill Currie
dedb2fa6bf
get [super ...] working correctly
2003-05-15 05:58:31 +00:00
Bill Currie
f7d806e8d5
can now handle > vector sized parameters
2003-04-22 20:11:16 +00:00
Bill Currie
e732cf591d
remove all references to OFS_* from the C code. only the macros in progs.h
...
use them now
2003-04-22 18:20:15 +00:00
Bill Currie
eb099ae0d3
make qf gcc 3.3 clean
2003-04-17 00:01:48 +00:00
Bill Currie
548d3b68f8
pr_load.c:
...
PR_RelocateBuiltins must be called before PR_InitRuntime
pr_obj.c:
don't segfault on broken classes
2003-03-13 18:45:45 +00:00
Bill Currie
761a7546dd
re-arrange things so __attribute__ and __builtin_expect are properly
...
autoconfiscated so rcsid will continue to work with gcc 3.3
2003-01-15 15:31:36 +00:00
Bill Currie
71196fedf6
make gcc more anal about prototypes, string constants and function
...
visibility (ie, global functions must have a prototype)
2003-01-06 18:28:13 +00:00
Bill Currie
d78f34e795
fix some spelling errors
2002-11-20 21:21:22 +00:00
Bill Currie
06df342655
fix a stray ;
2002-11-15 14:56:57 +00:00
Bill Currie
d1199f23da
get categories working in the runtime :)
2002-11-14 20:42:48 +00:00
Bill Currie
80e85226b9
pr_xstatement now always reflects the currently executing statement making
...
debugging easier in the event of a segfault
2002-10-22 15:07:54 +00:00
Bill Currie
4810046f39
copy the correct number of bytes
2002-10-17 19:33:06 +00:00
Bill Currie
4da662eb47
implement pr_obj_msg_sendv
2002-10-16 22:17:26 +00:00
Bill Currie
1f0b6e84a5
change pr_obj_msgSend and pr_obj_msgSend_super so they either call builtin
...
methods directly or setup the progs struct for a normal function call to
call a progs method rather than recursively calling PR_ExecuteProgram. This
will reduce method call overhead (both cpu and stack usage), fix the loss
of tracing when calling a method and makes it possible to break out of the
progs engine simply if threaded progs are ever implemented.
2002-10-15 18:53:33 +00:00
Bill Currie
b99a72e876
pr_obj.c:
...
call obj_find_message with super instead of class when doing a super
lookup
client_menu.[ch]:
use the InputLine object instead of directly using the api
InputLine.r:
builint functions are = #0 , not = 0 :P
function.[ch]:
provide copy_params
method.[ch]
provide copy_keywordargs
expr.c:
call inc_users for the parm temp if it's a bind expression
revers a copy of the selector when building the selector name so the
selector doesn't get mangled
qc-parse.y:
catch erronous func = const inintializers (should be func = #const)
2002-08-20 02:09:34 +00:00
Bill Currie
c1c6c05cf5
pr_obj.c:
...
delay class fixups so order doesn't matter
class.c:
write out the class and category diffs properly
2002-08-16 22:53:37 +00:00
Bill Currie
bff6291bfb
don't need to force developer now
2002-07-16 22:06:52 +00:00
Bill Currie
35d224f1da
a little more info and force developer on for now
2002-07-16 15:39:49 +00:00
Bill Currie
34fa421638
whitespace
2002-07-13 03:41:33 +00:00
Bill Currie
55fcead77c
look for the .this field but don't complain if not found
2002-05-31 17:21:38 +00:00
Bill Currie
a8e177652a
initialize the meta class super class pointer correctly
2002-05-31 14:58:42 +00:00
Bill Currie
2ee3aec19b
reverse the order of linking
2002-05-31 06:52:48 +00:00
Bill Currie
ea3c6995fd
actually /use/ method_list.method_next and chain the class methods onto the
...
instance methods for root classes.
2002-05-31 06:01:47 +00:00
Bill Currie
a7b5b56a2c
implement Z_Realloc, PR_Zone_Realloc and pr_obj_realloc
2002-05-29 20:58:53 +00:00
Bill Currie
33e055209e
Semi-major (more than minor:) progs convenience macro cleanup. There will
...
be more to come.
2002-05-22 22:35:37 +00:00
Bill Currie
ea36fceec5
fix a few missed initializations
2002-05-22 21:45:15 +00:00
Bill Currie
018b3ae536
more runtime implementation
2002-05-22 19:02:26 +00:00
Bill Currie
43e609241c
initial stab at supporting most of the obj runtime
2002-05-22 17:32:44 +00:00
Bill Currie
33daf1e724
provide temporary stubs for most of Object's methods
2002-05-21 23:39:21 +00:00
Bill Currie
3815d4be7e
blah, unitialized variable
2002-05-21 22:27:41 +00:00
Bill Currie
05c8cad2d1
grr, really should make compat.h include string[s].h
...
also, partially implement the messaging functions
2002-05-21 22:13:05 +00:00
Bill Currie
9820c5d45a
start working in the obj runtime. any and all functions named ".ctor" will
...
be run in the order found.
2002-05-21 21:29:49 +00:00