#1282 closed defect (fixed)

Typing errors in rtemsInterrupt class

Reported by: Franck MIMET Owned by: Joel Sherrill
Priority: normal Milestone: 4.9
Component: unspecified Version: 4.6
Severity: major Keywords:
Cc: ausy.mimet@… Blocked By:
Blocking:

Description

I am using RTEMS through C++ classes given in the librtems++ library.
I found two errors in the code of the rtemsInterrupt class which lead to unusability of this class :

  • The first one is in the default constructor, where the interrupt table is not well initialised.

The correction is hereafter :

for (rtems_vector_number vec = 0;

vec < CPU_INTERRUPT_NUMBER_OF_VECTORS;
vec++)

{

interrupt_table[vector] = 0; ERROR

interrupt_table[vec] = 0;

}

  • The second one is in the isr_catch member function.

By the same, there is an inversion between vec and vector, consequently the "this" pointer was not stored at the right place in the table.
The correction is hereafter:

old_interrupt = interrupt_table[vector]; ERROR
interrupt_table[vector] = this; ERROR

old_interrupt = interrupt_table[vec];
interrupt_table[vec] = this;
vector = vec;

I checked on the lastest version (4.8) and these errors still exist.

Best regards,
Franck MIMET

Change History (2)

comment:1 Changed on Aug 4, 2008 at 6:27:02 PM by Joel Sherrill

Resolution: fixed
Status: newclosed

Fixed on all active branches

comment:2 Changed on Oct 10, 2017 at 6:35:44 AM by Sebastian Huber

Component: miscunspecified
Note: See TracTickets for help on using tickets.